贪心算法找零就是现实中从最大面额开始找的思路。不代表是最优解,只是算法之一。由于面额输入顺序不定,我先对输入的面额进行降序排序。下面代码:include <stdio.h> include <malloc.h> int main(){ int i,j,m,n,*ns=NULL,*cn=NULL,sum=0;printf("请输入总金额m及零钱种类n:"),scanf("...
count1[i] : j; cout<<"需要用面值"<< value[i] <<"的纸币"<< c <<"张"<<endl; money-= c *value[i]; num+=c;if(money ==0)break;//零钱已经找完,直接退出程序}if(money >0)num = -1;returnnum; }intmain() {intmoney=0;intnum =0; cout<<"请输入要支付的零钱数目:"; cin>>...
首先注意,在这种找n美分零钱的最优方式中使用25美分硬币的个数q′,一定等于贪心算法所用25美分硬币的个数。为说明这一点,注意贪心算法使用尽可能多的25美分硬币,所以q′≤q。但是q′也不能小于q。假如q′小于q,需要在这种最优方式中用10美分、5美分和1美分硬币至少找出25美分零钱。而根据引理1,这是不可能的...
cout<<"放入第"<<i+1<<"件物品,背包剩余容量" <<c<<endl; } if(i<=n){ x[i]=c/w[i]; printf("放入第%d件物品的%f部分.背包剩余容量为0.\n",(i+1),w[i]*x[i]); } } /* * 0-1背包问题 * n:物品个数 * c:背包容量 * v[]:每个物品的价值 * w[]:每个物品的重量(这里已经...
百度试题 结果1 题目下列问题中不能够使用贪心算法求解的是 A. 单源最短路问题 B. 硬币找零问题 C. 最小生成树问题 D. 活动安排问题 相关知识点: 试题来源: 解析 B 反馈 收藏