最近在看Think in java ,看到吸血鬼数,便自己写了,如下代码
public class Java01 {
public static void main(String[] args) {
long startTime = System.nanoTime();
int total;
List<Integer> list = new ArrayList<>();
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
for(int k=0;k<10;k++) {
for(int l=0;l<10;l++) {
total = 1000*i+100*j+10*k+l;
if(total>1000) {
isTrueNum(total,i,j,k,l);
}
}
}
}
}
long endTime = System.nanoTime();
System.out.println("methodUseTime:" + (endTime - startTime));
}
public static void isTrueNum(int total,int a,int b,int c,int d) {
if (total==resultNum(a,b,c,d)||
total==resultNum(a,b,d,c)||
total==resultNum(a,c,b,d)||
total==resultNum(a,c,d,b)||
total==resultNum(a,d,b,c)||
total==resultNum(a,d,c,b)||
total==resultNum(b,a,c,d)||
total==resultNum(b,a,d,c)||
total==resultNum(b,c,a,d)||
total==resultNum(b,c,d,a)||
total==resultNum(b,d,a,c)||
total==resultNum(b,d,c,a)||
total==resultNum(c,a,b,d)||
total==resultNum(c,a,d,b)||
total==resultNum(c,b,a,d)||
total==resultNum(c,b,d,a)||
total==resultNum(c,d,a,b)||
total==resultNum(c,d,b,a)||
total==resultNum(d,a,b,b)||
total==resultNum(d,a,c,b)||
total==resultNum(d,b,a,c)||
total==resultNum(d,b,c,a)||
total==resultNum(d,c,a,b)||
total==resultNum(d,c,b,a)
) {
System.out.println(total);
}
}
public static int resultNum(int a,int b,int c,int d) {
return (10*a+b)*((10*c+d));
}
}