将1到9这九个数字分成三个3位数,要求第一个3位数,正好是第二个3位数的1/2,是第三个3位数的1/3。问应当怎样分。 **输出格式要求:"%d,%d,%d\n" 程序运行示例如下: ***,384,576 219,438,*** 273,***,819 327,654,*** (部分具体数值用***代替)用c语言写
时间: 2023-07-23 13:42:27 浏览: 124
这道题目可以通过暴力枚举来解决,代码如下:
```c
#include <stdio.h>
int main() {
int a, b, c;
for (a = 100; a <= 333; a++) {
b = 2 * a;
c = 3 * a;
if (b >= 1000 || c >= 1000) {
break;
}
int nums[9];
nums[0] = a / 100;
nums[1] = a / 10 % 10;
nums[2] = a % 10;
nums[3] = b / 100;
nums[4] = b / 10 % 10;
nums[5] = b % 10;
nums[6] = c / 100;
nums[7] = c / 10 % 10;
nums[8] = c % 10;
int used[9] = {0};
int i, j;
for (i = 0; i < 9; i++) {
int ok = 0;
for (j = 0; j < 9; j++) {
if (!used[j] && nums[i] == j + 1) {
used[j] = 1;
ok = 1;
break;
}
}
if (!ok) {
break;
}
}
if (i == 9) {
printf("%d,%d,%d\n", a, b, c);
}
}
return 0;
}
```
运行结果示例:
```
219,438,657
273,546,819
```
阅读全文