if(isVampireNumber) { // 如果是吸血鬼数,则打印出来
System.out.println("A vampire number found: " + i * j + ", (" + i + ", " + j + ").");
}
}
if(boundryReached) { // ③ 在出现溢出或者超过最大值、并且j等于i的情况下跳出外层循环,因为内层循环的初始条件是j=i,所以此时i再增长的话肯定会溢出或者超过最大值(见①和②)
break;
}
}
}
}
public static int[] getNumberCountList(int[] list, int... nums) {
for(int num : nums) {
do {
list[num % 10]++;
num /= 10;
}while(num != 0);
}
return list;
}
public static int getIntegerLength(int num) {
int len = 0;
do {
len++;
num /= 10;
}while(num != 0);
return len;
}
public static void main(String[] args) {
System.out.println("-------------- Now start computing... --------------");
long s = System.currentTimeMillis();
VampireNumber.find(0, Integer.MAX_VALUE); // 调用find()函数来求从0到Integer.MAX_VALUE之间的所有吸血鬼数
//VampireNumber.find(0, 900000);
long f = System.currentTimeMillis();
System.out.println("------- Computing finished, time used: " + (f - s) + " ms. -------");
}
}
作者 ini_always