将 1,2,…,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1 : 2 : 3 的比例,试求出所有满足条件的 3 个三位数。
#include<iostream>
using namespace std;
int i,j,k,b,c,flag,s[10];
int main()
{
for(i=123;i<=329;i++)
{
flag=0; //将用来标记的变量初始化为零
b=2*i;
c=3*i; //使得i,b,c之间的比例为1:2:3
s[1]=i/100;
s[2]=i/10%10;
s[3]=i%10;
s[4]=b/100;
s[5]=b/10%10;
s[6]=b%10;
s[7]=c/100;
s[8]=c/10%10;
s[9]=c%10; //将每个数字单独提出来
for(j=1;j<9;j++)
for(k=j+1;k<=9;k++)
if(s[j]==0||s[j]==s[k])
//如果这之间有两个数相等或者某个数字为零,就标记下来,并踢出备选答案
flag=1;
if(flag==0)
cout<<i<<" "<<b<<" "<<c<<endl;
}
return 0;
}