java程式設計思想魔鬼數字
阿新 • • 發佈:2018-11-20
窮舉法
public class practice {
public static void main(String[] args) {
int a,b,c,d;
index:for(int num=1000;num<=9999;num++) {
a=num/1000;
b=num/100%10;
c=num/10%10;
d=num%10;
if(num%100!=0) {
if((t(a)+b)*(t(c)+d)==num||(t(a)+b)*(c+t(d))==num||(a+t(b))*(t(c)+d)==num||(a+t(b))*(c+t(d))==num) {
System.out.println(num);
continue index;
}else
if((t(a)+c)*(t(d)+b)==num||(t(a)+c)*(d+t(b))==num||(a+t(c))*(t(d)+b)==num||(a+t(c))*(d+t(b))==num) {
System.out.println(num);
continue index;
}else
if((t(a)+d)*(t(c)+b)==num||(t(a)+d)*(c+t(b))==num||(a+t(d))*(t(c)+b)==num||(a+t(d))*(c+t(b))==num) {
System.out.println(num);
continue index;
}
}
}
}
private static int t(int a ) {
return a*10;
} }
public class practice {
public static void main(String[] args) {
int a,b,c,d;
index:for(int num=1000;num<=9999;num++) {
a=num/1000;
b=num/100%10;
c=num/10%10;
d=num%10;
if(num%100!=0) {
if((t(a)+b)*(t(c)+d)==num||(t(a)+b)*(c+t(d))==num||(a+t(b))*(t(c)+d)==num||(a+t(b))*(c+t(d))==num) {
System.out.println(num);
continue index;
}else
if((t(a)+c)*(t(d)+b)==num||(t(a)+c)*(d+t(b))==num||(a+t(c))*(t(d)+b)==num||(a+t(c))*(d+t(b))==num) {
System.out.println(num);
continue index;
}else
if((t(a)+d)*(t(c)+b)==num||(t(a)+d)*(c+t(b))==num||(a+t(d))*(t(c)+b)==num||(a+t(d))*(c+t(b))==num) {
System.out.println(num);
continue index;
}
}
}
}
private static int t(int a ) {
return a*10;
} }