近日在看Thinking in java第四版,对其中75页的吸血鬼数字很有兴趣,思考一阵后,将代码贴了上来
package 第4章练习;
public class P75练习10 {
public static void main(String[] args) {
test();
/*结果:
1260
1395
1435
1530
1827
2187
6880*/
}
static void test(){
for(int i=10;i<100;i++){
for(int j=10;j<100;j++){
int a=i*j;
if(a>1000&&a<10000&&a%100!=0){
t(a, h(a(a),b(a)), h(c(a), d(a)));
t(a, h(a(a),b(a)), h(d(a), c(a)));
t(a, h(a(a),c(a)), h(b(a), d(a)));
t(a, h(a(a),c(a)), h(d(a), b(a)));
t(a, h(a(a),d(a)), h(c(a), b(a)));
t(a, h(a(a),d(a)), h(b(a), c(a)));
t(a, h(b(a), a(a)), h(c(a), d(a)));
t(a, h(b(a), a(a)), h(d(a), c(a)));
t(a, h(b(a), c(a)), h(d(a), a(a)));
t(a, h(b(a), d(a)), h(c(a), a(a)));
t(a, h(c(a), a(a)), h(d(a), b(a)));
t(a, h(c(a), b(a)), h(d(a), a(a)));
}
}
}
}
static int a(int i){
return i/1000;
}
static int b(int i){
return (i%1000)/100;
}
static int c(int i){
return ((i%1000)%100)/10;
}
static int d(int i){
return (((i%1000)%100)%10);
}
static int h(int i,int j){
return i*10+j;
}
static void t(int i,int a,int b){
if(i==a*b){
System.out.println("i="+i+",a="+a+",b="+b);
}
}
}