将1,2,…,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!。使用c++给出完整代码
时间: 2024-05-11 07:13:43 浏览: 78
```c
#include <stdio.h>
int main()
{
int a[10], i, j, k, A, B, C, x, y, z, cnt = 0;
for (i = 1; i <= 9; i++)
a[i] = i;
for (i = 123; i <= 329; i++)
{
j = i * 2;
k = i * 3;
x = i;
y = j;
z = k;
//判断是否每个数字都不相同
if (x / 100 == x % 10 || x / 100 == x / 10 % 10 || x / 10 % 10 == x % 10)
continue;
if (y / 100 == y % 10 || y / 100 == y / 10 % 10 || y / 10 % 10 == y % 10)
continue;
if (z / 100 == z % 10 || z / 100 == z / 10 % 10 || z / 10 % 10 == z % 10)
continue;
//判断比例是否正确
if (y % x != 0 || z % x != 0 || y / x != B || z / x != C)
continue;
if (y / x == B && z / x == C)
{
printf("%d %d %d\n", x, y, z);
cnt++;
}
}
if (cnt == 0)
printf("No!!!\n");
return 0;
}
```
注:由于题目中并没有要求三个三位数的顺序,因此可以使用三个变量 x、y、z 分别代表三个三位数进行判断,最后输出即可。
阅读全文