C趣味程序百例(23)和数能表示1~23的5个正整数

文章作者 100test 发表时间 2007:03:10 17:30:07
来源 100Test.Com百考试题网


73 和数能表示1~23的5个正整数
已知五个互不相同的正整数之和为23,且从这五个数中挑选若干个加起来可以表示从1到23之内的全部自然数。问这五个数是什么?
*问题分析与算法设计
从计算机程序设计的角度来说,可以用穷举法分解23,然后判断所分解的五个数是否可以表示1到23 之间的全部整数。
*程序与程序注释
#include
void main()
{
int a,b,c,d,e,i,j,k,l,m,x,count=0,f=0. /*f:分解的5个数可以表示出1~23的标记*/
printf("There are following possble result:\n").
for(a=1.a<=23.a ) /*将23分解为a,b,c,d,e五个数*/
for(b=1 a.b<=23-a.b )
for(c=1 b.c<=23-a-b.c )
for(d=1 c.d<=23-a-b-c.d )
{
f=1.
if((e=23-a-b-c-d)>d)
for(f=0,x=1.x<24&.&.!f.x ) /*判断5个数可否表示1~23*/
for(f=1,i=0.i<2&.&.f.i ) /*穷举5个数的全部取舍*/
for(j=0.j<2&.&.f.j )
for(k=0.k<2&.&.f.k )
for(l=0.l<2&.&.f.l )
for(m=0.m<2&.&.f.m )
if(x==a*i b*j c*k d*l e*m) f=0.
if(!f) printf("[%d]: %d %d %d %d %d\n", count,a,b,c,d,e).
}
}
*运行结果
There are following possble result:
[1]: 1 2 3 5 12
[2]: 1 2 3 6 11
[3]: 1 2 3 7 10
[4]: 1 2 4 5 11
[5]: 1 2 4 6 10
[6]: 1 2 4 7 9

相关文章


北京市全国计算机等级考试考点
国家计算机等级考试-考试科目
C趣味程序百例(23)和数能表示1~23的5个正整数
国家计算机等级考试-各科考试要求
国家计算机等级考试-考试时间
C趣味程序百例(22)约瑟夫问题
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛