一、题目
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
1.输入格式
无输入文件
2.输出格式
输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。
二、样例输入和输出
样例输入:
无
样例输出:
无
3.题解过程
1.解题思路
这道题是非常简单并不复杂的,题目只是让输出满足条件的数。这里有两种思路,一种是直接找出这些满足条件的数,另一种是判断满足条件的数再输出。因为题目简单所以就直接来看代码的解释吧。
2.全部代码
#include <stdio.h>
int main() {
int a[3], l = 0, i = 123, m = 0, j = 0, n[9] ;
//利用第一个数来找其他的两个数
for ( i = 123; i < 333; i++) {
a[0] = i;
a[1] = 2 * i;
a[2] = 3 * i;
//得到每个数的各个位数
for (j = 0; j < 3; j++) {
n[l] = a[j] / 100;
n[l + 1] = (a[j] - n[l] * 100) / 10;
n[l + 2] = a[j] % 10;
l = l + 3;
if (j == 2)
l = 0;
}
int flag = 1;
//判断是否满足1~9不重复
for ( m = 0; m < 9; m++) {
for (j = m + 1; j < 9; j++) {
if (n[m] == n[j] || n[m] == 0)
flag = 0;
}
}
//输出
if (flag == 1) {
for (j = 0; j < 3; j++) {
printf("%d ", a[j]);
}
printf("\n");
}
}
}
总结
题目不是很难,思路上的一般差别不大。