继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

币值最大问题

qq_莫非
关注TA
已关注
手记 21
粉丝 19
获赞 4

给定n个硬币,假设其面值为5,1,2,10,6,2。如何选择硬币,使得在其原位置不相邻的情况下,所选硬币的总金额最大?(动态规划--C语言实现)

 #include <stdio.h>

int max(int m,int n){
	return m>n?m:n;
}

int main()
{
   int a[]={0,5,1,2,10,6,2};
   int rs[7];
   int i;
   for(i=0;i<7;i++){
   	   if(i<=1){
		   rs[i]=a[i];
	   }
	   else{
	       rs[i]=max(a[i]+rs[i-2],rs[i-1]);
	       printf("rs[%d]=%d\n",i,rs[i]);
	   }
   }
   printf("最大币值为:%d\n",rs[6]);
   return 0;
}


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP