用1~9组成3个三位数,每个数字使用一次使得abc:def:ghi=1:2:3,输出所有解c 用1,

发布时间:2021-02-18 19:47:15

用1~9组成3个三位数,每个数字使用一次使得abc:def:ghi=1:2:3,输出所有解c 用1,2,……9组成三个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:输出所有解

网友回答

abc:def:ghi
138:276:414
139:278:417
143:286:429
148:296:444
1⑥4:328:492
176:352:528
178:356:534
179:358:537
182:364:546
186:372:558
192:384:576
218:436:654
219:438:657
238:476:714
239:478:717
273:546:819
293:586:879
314:628:942
327:654:981
329:658:987
又补充了提问.我就不贴代码了.算法思路就是
从i = 123到i = 987/3 做循环
{算出i*2、i*3的值
把这三个数的各位共9个数字,加上一个0,放入一长度为10的数组.
设置一个布尔值 = 1
从 k = 0 到 9循环
{设置一个值F=0
从数组1到10循环
{某位 == k,则F=F+1
如果F = 2,跳出该循环
}如果F = 2,布尔值=0,跳出循环
}如果布尔值 = 1,这个i符合,按格式输出i、i*2、i*3
}======以下答案可供参考======
供参考答案1:
176:352:528
178:356:534 186:372:558 192:384:576 179:358:537 182:364:546供参考答案2:
用1,2,3,……9组成三个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出所有解
138:276:414
139:278:417
143:286:429
148:296:444
供参考答案3:
#include stdafx.h#include#includeint a[9],flag=0;int _tmain(int argc, _TCHAR* argv[]){for(int i=123;i{flag=0;a[0]=i/100;a[1]=i/10%10;a[2]=i%10;a[3]=i*2/100;a[4]=i*2/10%10;a[5]=i*2%10;a[6]=i*3/100;a[7]=i*3/10%10;a[8]=i*3%10;for(int j=0;jfor(int k=j+1;kif(a[j]==a[k]){ flag=1; break;}if(flag==0)printf(%d %d %d\n,i,i*2,i*3);}printf(Time used=%.21f\n,(double)clock()/CLOCKS_PER_SEC); return 0;}楼上的前半部分的思路是对的,后面可能出现了问题,正确答案是这9个数都不能相同。我测试了一下和算法竞赛入
以上问题属网友观点,不代表本站立场,仅供参考!