标签:
http://kyxxgl.nbu.edu.cn/oj/problem.php?id=1010
对于学习递归非常好的题目
1 #include "stdio.h" 2 int n; 3 int a[100]; 4 int max(int a,int b) 5 { 6 return a>b?a:b; 7 } 8 int eat(int limit,int i) 9 { 10 int max1=0,max2=0; 11 if(i==n) 12 { 13 if(a[i]<=limit) 14 return a[i]; 15 else 16 return 0; 17 } 18 if(a[i]<=limit) 19 { 20 max1=eat(limit-a[i],i+1)+a[i]; 21 max2=eat(limit ,i+1); 22 } 23 else 24 max2=max1=eat(limit ,i+1); 25 return max( max1,max2 ); 26 } 27 main() 28 { 29 int limit; 30 scanf("%d%d",&limit,&n); 31 for(int i=1;i<=n;i++) 32 scanf("%d",&a[i]); 33 printf("%d",eat(limit,1)); 34 }
标签:
原文地址:http://www.cnblogs.com/threezj/p/4654443.html