SMU Winter 2023 Round #11 (Div.2)

A.BCD

题意:

输入两个数,一个是数的数量N,另一个是每个箱子能够装多少书M,问需要多少个箱子。

思路:

我们只需要用书n的数量去除以容量m,然后判断一下取模有没有余数,有的话就结果就再加1即可。

代码:

点击查看代码
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int k = scanner.nextInt();
		if(n%k==0) {
			System.out.println(n/k);
		}else {
			System.out.println(n/k+1);
		}
	}
}

B.Poku's Vacation

题意:

用砖头砌台阶,给出一个砖头的总数量,然后一个砖头砌一个台阶,两个砖头砌两个台阶,依次这样下去,如果剩余的砖头砌不了就只能算到前面那一阶,问最后能够砌多少个台阶。

思路:

让i从1开始每次增加1,用总数量n减去这个i,同时阶数加一,知道n比i小的时候,退出循环。

代码:

点击查看代码
import java.util.Scanner;
public class MainB {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int T = scanner.nextInt();
		while(T-->0) {
			int n = scanner.nextInt();
			int count = 0;
			for(int i = 1;;i++) {
				if(n>=i) {
					n = n-i;
					count++;
				}else {
					break;
				}
			}
			System.out.println(count);
		}
	}
}

C.Elder Ning

题意:

给出n个数段,这个数段从l到r都是连续的整数,求所有数段中的公共的数有多少个。

思路:

首先判断两个数段的公共部分,判断方法就是在两个数段中找到大的l和小的r,如果l<=r就是公共部分,如果l>r就没有公共部分,只要没有公共部分就直接退出,就是0个,因为是所有数段的公共部分,这两个里面没有,后面就不会再有了。将两个数段的公共部分找出来再去和下一个数段找公共部分,知道找完,用r-l+1即可。

代码:

点击查看代码
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int m = scanner.nextInt();
		int[] l = new int[m];
		int[] r = new int[m];
		for(int i = 0;i < m;i++) {
			l[i] = scanner.nextInt();
			r[i] = scanner.nextInt();
		}
		if(m==1) {
			System.out.println(r[0]-l[0]+1);
			return;
		}
		int newl = l[0];
		int newr = r[0];
		for(int i = 1;i < m;i++) {
			newl = Math.max(newl, l[i]);
			newr = Math.min(newr, r[i]);
			if(newl>newr) {
				System.out.println(0);
				return;
			}
		}
		System.out.println(newr-newl+1);
	}
}

D.

posted @ 2023-02-16 22:40  Tcoo  阅读(33)  评论(0)    收藏  举报