吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。
以两个0结尾的数字是不允许的,例如,下列数字都是吸血鬼数字:
1260 = 21 * 60
1827 = 21 * 87
2187 = 27 * 81
程序如下:
import java.util.Arrays; public class Exercise10 { public static void main(String[] args) { // TODO Auto-generated method stub String[] num1, num2; for (int i = 10; i < 100; i++) { for (int j = 10; j < 100; j++) { int value = i * j; if (value < 1000 || value > 9999) continue; num1 = String.valueOf(value).split(""); num2 = (String.valueOf(i) + String.valueOf(j)).split(""); Arrays.sort(num1); Arrays.sort(num2); if (Arrays.equals(num1, num2)) System.out.println(i + "*" + j + "=" + value); } } } }
运行结果:
15*93=1395 21*60=1260 21*87=1827 27*81=2187 30*51=1530 35*41=1435 41*35=1435 51*30=1530 60*21=1260 80*86=6880 81*27=2187 86*80=6880 87*21=1827 93*15=1395