将1-9这9个数子分成三组(每个数字只能使用一次),分别组成三个三位数,值构成1:2:3的比例

用TC或C将1-9这9个数子分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。... 用TC或C
将1-9这9个数子分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。
展开
 我来答
以以旋0H5
2012-10-23
知道答主
回答量:16
采纳率:0%
帮助的人:5.4万
展开全部
已验证:四种方案: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,b2=0,b3=0,c1=0,c2=0,c3=0;
int a=0,b=0,c=0;
for(a1=1;a1<=9;a1++)
for(a2=1;a2<=9;a2++)
for(a3=1;a3<=9;a3++)
for(b1=1;b1<=9;b1++)
for(b2=1;b2<=9;b2++)
for(b3=1;b3<=9;b3++)
for(c1=1;c1<=9;c1++)
for(c2=1;c2<=9;c2++)
for(c3=1;c3<=9;c3++)
if(a1!=a2&&a1!=a3&&a1!=b1&&a1!=b2&&a1!=b3&&a1!=c1&&a1!=c2&&a1!=c3&&a2!=a3&&a2!=b1&&a2!=b2&&a2!=b3&&a2!=c1&&a2!=c2&&a2!=c3&&a3!=b1&&a3!=b2&&a3!=b3&&a3!=c1&&a3!=c2&&a3!=c3&&b1!=b2&&b1!=b3&&b1!=c1&&b1!=c2&&b1!=c3&&b2!=b3&&b2!=c1&&b2!=c2&&b2!=c3&&b3!=c1&&b3!=c2&&b3!=c3&&c1!=c2&&c1!=c3&&c2!=c3)
{
a=100*a1+10*a2+a3;
b=100*b1+10*b2+b3;
c=100*c1+10*c2+c3;
if(b==2*a)
if(c==3*a)
printf("%d%d%d %d%d%d %d%d%d ",a1,a2,a3,b1,b2,b3,c1,c2,c3);

}
}
百度网友36792a7bd
2006-11-05
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
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);
}
}

这个应该比较容易看懂吧!!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangxi0414
2006-11-05
知道答主
回答量:7
采纳率:0%
帮助的人:4.2万
展开全部
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了
写的太烦了应该有更好的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pyf0553
2012-06-30
知道答主
回答量:2
采纳率:0%
帮助的人:3182
展开全部
#include "stdio.h"
int a[9];
int fun(int*z,int t)
{
int *p1,*p2;
for(p1=z;p1<z+3;p1++)
{
*p1=t%10;
t=t/10;
for(p2=a;p2<p1;p2++)
if(*p1==0||*p2==*p1)
return 0;
}
return 1;
}
void main()
{
int m,count=0;
for(m=123;m<333;m++)
if(fun(a,m)&&fun(a+3,2*m)&&fun(a+6,3*m))
printf("No.%d: %d %d %d\n",++count,m,2*m,3*m);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
magicccccccccc
2006-11-05 · TA获得超过370个赞
知道小有建树答主
回答量:511
采纳率:0%
帮助的人:0
展开全部
好难啊。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式