题目正文
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成 1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
输入
无
输出
输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。
代码
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f,x,y,g,h,t;
for(int i=123;i<328;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(a!=b && a!=c && b!=c)
{
x=2*i;
d=x/100;
e=x/10%10;
f=x%10;
if(d!=e && d!=f && e!=f && d!=a && d!=b && d!=c && e!=a && e!=b && e!=c&& f!=a && f!=b && f!=c)
{
y=3*i;
g=y/100;
h=y/10%10;
t=y%10;
if(g!=h && g!=t && h!=t && g!=a && g!=b && g!=c && h!=a && h!=b && h!=c && t!=a && t!=b && t!=c && g!=d && g!=e && g!=f && h!=d && h!=e && h!=f && t!=d && t!=e && t!=f && h!=0)
{
cout<<i<<" "<<x<<" "<<y<<endl;
}
}
}
}
return 0;
}
总结
这题我觉得我自己是用了一种比较麻烦的方法,就是把每一个数字都比较一下是否相等,一开始我还犯了一个很简单的错误,就是把两个变量当成一个使用,在第三步比较的时候一直不出来结果,后来我改正了,发现我自己没有认真审题,不能包括零,得出的结果是五行,后来限制条件之后,提交成功了!