你这写的。。。 n 初始化值为0,而且一直是0, 所以你这个 if (m * e == n)肯定不会成立
有两种方法:
第一种就是5个forfor(int a = 1; a<= 9; a++) { // 因为是4位数,所以首位不会出现0
for(int b = 0; b <= 9; b++) {
for(int c = 0; c <= 9; c++) {
for(int d = 1; d<= 9; d++) { //同理
for(int e = 1; e <= 9; e++) {
if((a * 1000 + b * 100 + c * 10 + d) * e == d * 1000 + c * 100 + b * 10 + a && a != b && a != c && a != d && b != c && b != d && c != d
&& a != e && b != e && c != e && d != e){
// a,b,c,d,e 应该是不同的数字,可以相同就去了
//....
}
}
}
}
}
}
第二种就是你这样, 判断的时候稍微改下for(int m = 1000; m <= 9999; m++) {
for(int e = 1; e <= 9; e++) {
n = m * e;
a1 = n / 1000;
b1 = n / 100 % 10;
c1 = n / 10 % 10;
d1 = n % 10;
a2 = m / 1000;
b2 = m / 100 % 10;
c2 = m / 10 % 10;
d2 = m % 10;
if(a1 == d2 && b1 == c2 && c1 == b2 && d1 == a2
&& a1 != b1 && a1 != c1 && a1 != d1 && b1 != c1 && b1 != d1 && c1 != d1
&& a1 != e && b1 != e && c1 != e && d1 != e){
// a,b,c,d,e 应该是不同的数字,可以相同就去了
//....
}
}
}