给定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;
}点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦