posts - 20,  comments - 6,  trackbacks - 0
 1 #include <iostream>
 2 using namespace std;
 3 int c1[10001],c2[10001];
 4 int main()
 5 {
 6     int num1,num2,num5,i,j,k,u,o;
 7     while (cin>>num1>>num2>>num5 && (num1|| num2 || num5))
 8     {
 9           for (i=0;i<=10001;i++)
10           {c1[i]=1;c2[i]=0;}//初始化 
11 
12               for (j=0,o=0;o<=num1;j++,o++)//o为1分数量限制,j为1分组成的价格 
13               {
14                   for (k=0,u=0;u<=num2;k+=2,u++)//k为2分的价格,u为2分个数限制 
15                   {
16                       c2[j+k]+=c1[j];
17                   }
18               }//穷举出所有2分和1分的总和 
19               for (int w=0;w<=10001;w++)
20               {c1[w]=c2[w];c2[w]=0;}
21               int t=j+k-3;
22               for (j=0,o=0;o<=t;j++,o++)
23               {
24                   for (k=0,u=0;u<=num5;k+=5,u++)//同上,处理5分的情况,母函数真神奇 
25                   {
26                       c2[j+k]+=c1[j];
27                   }
28               }
29               for (int w=0;w<=10001;w++)
30               {c1[w]=c2[w];c2[w]=0;}//c2 复制到c1 
31             int p;
32             for (p=1;p<=10001;p++)
33             {if (c1[p]==0
34             {break;}}//找出最小的不能表示的价值 
35             cout<<p<<endl;
36     }
37     return 0;
38 }
39 //甘露大牛的母函数 个人加了批注,学习中。。。 

posted on 2009-01-28 22:30 混沌的云 阅读(336) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年1月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(1)

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜