输出结果一模一样但是判我错
查看原帖
输出结果一模一样但是判我错
1431434
C_dev楼主2024/10/1 23:51
#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;
}

为什么输出结果一模一样但是判我错

2024/10/1 23:51
加载中...