小蓝要为一条街的住户制作门牌号。
这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。
小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。
请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?
public class Main {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i < 2021; i++) {
if (i / 1000 == 2) {
count++;
}
if (i % 1000 / 100 == 2) {
count++;
}
if (i % 100 / 10 == 2) {
count++;
}
if (i % 10 == 2) {
count++;
}
}
System.out.println(count);
}
}
B
小蓝准备用 256MB256MB 的内存空间开一个数组,数组的每个元素都是 3232 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB256MB 的空间可以存储多少个 3232 位二进制整数?
因为一个字节是8位二进制所以
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a=256*8*1024*1024/32;
//在此输入您的代码...
System.out.println(Math.abs(a));
scan.close();
}
}
C
在很久很久以前,有 nn 个部落居住在平原上,依次编号为 11 到 nn。第 ii 个部落的人数为 ti有一年发生了灾荒。年轻的政治家小蓝想要说服所有部落一同应对灾荒,他能通过谈判来说服部落进行联合。
每次谈判,小蓝只能邀请两个部落参加,花费的金币数量为两个部落的人数之和,谈判的效果是两个部落联合成一个部落(人数为原来两个部落的人数之和)。
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int n = scan.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = scan.nextInt();
}
int temp = 0;
for (int i = 0; a[a.length - 2] != 0; i++) {
Arrays.sort(a);
// System.out.println(a);
a[i + 1] = a[i] + a[i + 1];
temp += a[i + 1];
a[i] = 0;
}
System.out.println(temp);



