题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。
输入
无
输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。
样例输出 Copy
192 384 576 .........
#include <stdio.h>
int main()
{
int a, b, c, i, j, k;
for (i = 1; i <= 3; i++) // 因为三位数最大为9开头,所以i不能大于3
{
for (j = 1; j <= 9; j++)
{
for (k = 1; k <= 9; k++)
{
if (i == j || i == k || j == k)
continue;
a = i * 100 + j * 10 + k;
b = a * 2;
c = a * 3;
if ((a % 10 + a / 10 % 10 + a / 100 + b % 10 + b / 10 % 10 + b / 100 + c % 10 + c / 10 % 10 + c / 100) == (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9) &&
(a % 10) * (a / 10 % 10) * (a / 100) * (b % 10) * (b / 10 % 10) * (b / 100) * (c % 10) * (c / 10 % 10) * (c / 100) == (1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9))
printf("%d %d %d\n", a, b, c);
}
}
}
return 0;
}