#include <stdio.h>
int judge(int a, int b);
int main()
{
int number[1000] = { 0 };
int cnt = 0;
int out = 0;
for (int bai = 1; bai <= 9&&out!=1; bai++) {
for (int shi = 1; shi <= 9&&out!=1; shi++) {
while(bai == shi) {
shi += 1;
}
for (int ge = 1; ge <= 9; ge++) {
while(ge == bai || ge == shi) {
ge += 1;
}
if (ge == 10) {
break;
}
int num = bai * 100 + shi * 10 + ge;
if (num > 987) {
out = 1;
break;
}
number[cnt] = num;
cnt++;
}
}
}
int number1 = 0;
int number2 = 0;
int number3 = 0;
for (int i = 0; i < cnt; i++) {
number1 = number[i];
int j = 0;
int k = 0;
int ok = 0;
while (j < cnt) {
number2 = number[j];
j++;
if (number2 == 2 * number1 && judge(number1,number2)) {
ok = 1;
break;
}
}
while (k < cnt&&ok == 1) {
number3 = number[k];
k++;
if (number3 == 3 * number1 && judge(number3,number1) && judge(number3,number2)) {
printf("%d\t", number1);
printf("%d\t", number2);
printf("%d\n", number3);
break;
}
}
}
return 0;
}
int judge(int a, int b)
{
int can = 1;
int aarr[3];
int barr[3];
int cnt = 0;
while (a > 0) {
aarr[cnt] = a % 10;
barr[cnt] = b % 10;
a /= 10;
b /= 10;
cnt++;
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (aarr[i] == barr[j]) {
can = 0;
}
}
}
return can;
}
为什么输出结果一模一样但是判我错