将1-9这9个数子分成三组(每个数字只能使用一次),分别组成三个三位数,值构成1:2:3的比例
来源:百度知道 编辑:UC知道 时间:2024/05/12 11:58:41
将1-9这9个数子分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。
main()
{
int i,j,k,h,s;
int a[10];
for(i=123;i*3<=987;i++)
{
for(h=1;h<10;h++)
a[h]=0;
a[i/100]=1;
a[i/10%10]=1;
a[i%10]=1;
j=i*2;
a[j/100]=1;
a[j/10%10]=1;
a[j%10]=1;
k=i*3;
a[k/100]=1;
a[k/10%10]=1;
a[k%10]=1;
for(s=0,h=1;h<10;h++)
s=s+a[h];
if(s==9)
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
}
这个应该比较容易看懂吧!!!
for(i=100;i<=999;i++)
{hun=i/100;
ten=i%100/10;
num=i%10};
if(hun!=num&hun!=ten&ten!=num)&((hun/ten==2&&hun/num==3)||(hun/num==2&&hun/ten==3)||(num/ten==2&&num/hun==3)||(num/ten==3&&num/hun=2)||(ten/hun=2&&ten/num=3)||(ten/hun=3&&ten/num=2))
number=i;
}
好久没用过过C了
写的太烦了应该有更好的方法
已验证:四种方案:192 384 576.....219 438 657.....273 546 819....327 645 981
#include<stdio.h>
void main()
{
int a1=0,a2=0,a3=0,b1=0