题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
输入输出格式
输入格式:
木有输入
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
输入样例#1:
无
输出样例#1:
192 384 576
* * *
...
* * *
(输出被和谐了)
源代码
#include<iostream>
using namespace std;
int main() {
int i,j,k,m,sum;
int a[10];
for(i=123; i*3<=987; i++) { //由于数字不重复,故区间范围从123-987
for(m=1; m<10; m++)
a[m]=0; //全部初始化为0
a[i/100]=1;//第一个三位数的百位
a[i/10%10]=1;//第一个三位数的十位
a[i%10]=1;//第一个三位数的个位
j=i*2;//第二个三位数,与第一个三位数满足1:2的关系
a[j/100]=1;//第二个三位数的百位
a[j/10%10]=1;//第二个三位数的十位
a[j%10]=1;//第二个三位数的个位
k=i*3;//第三个三位数,与第一个、第二个三位数满足1:2:3的关系
a[k/100]=1;//第三个三位数的百位
a[k/10%10]=1;//第三个三位数的十位
a[k%10]=1;//第三个三位数的个位
for(sum=0,m=1; m<10; m++)
sum=sum+a[m]; //将存储三个数位的数组元素相加
if(sum==9)
cout<<i<<" "<<j<<" "<<k<<endl;//若恰好为9,说明满足题设,输出
}
return 0;
}