流云

风驰影跃长 月映霜华裳
随笔 - 23, 文章 - 6, 评论 - 53, 引用 - 0

导航

<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

留言簿(0)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

东观沧海

云散之处

搜索

最新评论

阅读排行榜

评论排行榜

N的和分解

一个算法问题!!请各位帮助 [所有相关帖子]

使用数字 12458 中随机的数字组合成一列数,让这一列的数之和为20。什么算法那?
例如 2288  之和是20
     1
2458之和也是20

谢谢各位了!

书童 zgc7622 发表于 2005-12-19 14:33:17


编写代码如下,可以稍加修改求N的和、积因子.


void test()
{
 int N=20,M[5]={1,2,4,5,8};
 for(int a=N/M[0];a>=0;a--)
 {
  for(int b=(N-a*M[1])/M[1];b>=0;b--)
  {
   for(int c=(N-a*M[0]-b*M[1])/M[2];c>=0;c--)
   {
    for(int d=(N-a*M[0]-b*M[1]-c*M[2])/M[3];d>=0;d--)
    {     
     for(int e=(N-a*M[0]-b*M[1]-c*M[2]-d*M[3])/M[4];e>=0;e--)
     {
      if(a*M[0]+b*M[1]+c*M[2]+d*M[3]+e*M[4]==N)
       printf("\n%d=%d*%d + %d*%d + %d*%d + %d*%d + %d*%d",N,M[0],a,M[1],b,M[2],c,M[3],d,M[4],e);
     } 
    }    
   }   
  }
 }

}

posted on 2005-12-20 11:50 流云 阅读(2594) 评论(0)  编辑 收藏

评论

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]