问题来源:算法设计与分析基础第三版8.1 例1
问题:给定一排n个硬币,其面值均为整数c1, c2, …, cn, 这些整数并不一定两两不同。问如何选择硬币,使得在其原始位置互不相邻的条件下,所选硬币的总金额最大。
分析:最基本的回溯,说白了就是反复比较第一枚加第三枚数值大还是第二枚硬币数值大,然后大的数值赋给下一次比较的第一枚硬币。
C语言代码实现
//计科四班 吴鹏
//动态规划求币值最大问题
#include<stdio.h>
#define MAX 6
int main(void){
int i;
int c[MAX],f[MAX];
c[0]=0;
printf("输入硬币面值:\n");
for(i=1;i<=MAX;i&#