设为首页 加入收藏

TOP

和数能表示1~23的5个正整数
2014-11-11 20:00:06 来源: 作者: 【 】 浏览:41
Tags:表示 整数

  已知五个互不相同的正整数之和为23,且从这五个数中挑选若干个加起来可以表示从1到23之内的全部自然数。问这五个数是什么?


  *问题分析与算法设计


  从计算机程序设计的角度来说,可以用穷举法分解23,然后判断所分解的五个数是否可以表示1到23 之间的全部整数。


  *程序说明与注释


  #include


  int 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语言实例编程:新娘和新? 下一篇C语言:rsa算法原理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: