public class Main {
public static void main(String[] args) {
int count = 0; //记录哈沙德个数
int k = 0; //从1开始的数
while (true) {
k++;
long sum10 = 0;
long sum2 = 0;
long sum8 = 0;
long sum16 = 0;
String a = String.valueOf(k); //10
String b = Integer.toBinaryString(k);//2
String c = Integer.toOctalString(k);//8
String d = Integer.toHexString(k);//16
if (count == 2023) {
break;
}
//10
char[] arr = a.toCharArray();
for (int i = arr.length - 1; i >= 0; i--) {
sum10 += (arr[i] - '0');
}
//2
char[] arr2 = b.toCharArray();
for (int i = arr2.length - 1; i >= 0; i--) {
sum2 += (arr2[i] - '0');
}
//8
char[] arr8 = c.toCharArray();
for (int i = arr8.length - 1; i >= 0; i--) {
sum8 += (arr8[i] - '0');
}
//16
char[] arr16 = d.toCharArray();
for (int i = arr16.length - 1; i >= 0; i--) {
if (arr16[i] == 'a') {
sum16 += 10;
} else if (arr16[i] == 'b') {
sum16 += 11;
} else if (arr16[i] == 'c') {
sum16 += 12;
} else if (arr16[i] == 'd') {
sum16 += 13;
} else if (arr16[i] == 'e') {
sum16 += 14;
} else if (arr16[i] == 'f') {
sum16 += 15;
} else {
sum16 += arr16[i] - '0';
}
}
if (k % sum10 == 0 && k % sum2 == 0 && k % sum8 == 0 && k % sum16 == 0) {
count++;
}
if (count==2023){
System.out.println(k);
}
}
}
}
蓝桥杯幸运数字快速解法
最新推荐文章于 2024-07-16 15:29:19 发布