题目描述:
import java.math.BigInteger;
public class Demo09 {
public static void main(String[] args) {
int i = 1, counter = 0;
while(true) {
String bin = Integer.toBinaryString(i);
String oct = Integer.toOctalString(i);
String dec = String.valueOf(i);
String hex = Integer.toHexString(i);
int binSum = sum(bin, 2);
int octSum = sum(oct, 8);
int decSum = sum(dec, 10);
int hexSum = sum(hex, 16);
if(i % binSum == 0 && i % octSum == 0 && i % decSum == 0 && i % hexSum == 0) {
counter++;
}
if(counter >= 2023) {
System.out.println(i);
break;
}
i++;
}
}
private static int sum(String numStr, int radix) {
BigInteger ret = new BigInteger("0", radix);
for(int i1 = 0; i1 < numStr.length(); i1++) {
String s = numStr.substring(i1, i1+1);
BigInteger bn = new BigInteger(s, radix);
ret = ret.add(bn);
}
return ret.intValue();
}
}
输出结果:215040