问题:123456789分为3个三位数,其比值为1:2:3,每个数字只用一次
思想:定义数组a[10],定义最小数为x,另两个数为2*x,3*x;
123<=x<=999/3的范围大的for循环;
在大循环的开始将数组数据全赋值为0,接着再写2个for循环,求出9个数将它们出现的次数存入数组;
用if语句判断数组数据是否全为1,若是输出3个三位数。
代码:
#include<stdio.h>
int main()
{
int x,i,j,k;
int m;
int f;
int a[10];
for(k=123;k<=333;k++)
{
x=k;
for(i=1;i<=9;i++)
{
a[i]=0;
}
for(i=1;i<=3;i++)
{
m=x*i;
for(j=1;j<=3;j++)
{
a[m%10]++;
m=m/10;
}
}
f=1;
for(i=1;i<=9;i++)
{
if(a[i]!=1)
{
f=0;
}
}
if(f==1)
{
printf("x=%d,y=%d,z=%d\n",x,2*x,3*x);
}
}
return 0;
}