/*将1,2,…,9 共 9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 1:2:3,
试求出所有满足条件的三个三位数。
【输入形式】
*/
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int i,j,k,m,s=0;
int a[10];
for(i=123;3*i<=987;i++)
{
//int a[10]={0,0,0};
for(m=0;m<10;m++)
a[m]=0;
a[i/100]=1;
a[i/10%10]=1;
a[i%10]=1;
j=2*i;
a[j/100]=1;
a[j/10%10]=1;
a[j%10]=1;
k=3*i;
a[k/100]=1;
a[k/10%10]=1;
a[k%10]=1;
for(m=0;m<=9;m++)
{
s=s+a[m];
}
if(s==9)
cout<<i<<" "<<j<<" "<<k<<endl;
}
return 0;
}
if(s==9)
cout<<i<<" "<<j<<" "<<k<<endl;
s = 0; //reinit
需要在循环体末尾加上s = 0;即对s重新初始化;否则下次循环的s是上次循环的累加值;