贪心算法 找零钱问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号

《算法设计与分析》

实验报告三

学生姓名

专业、班级

指导教师

成绩

电子与信息工程系

实验三:贪心算法运用练习

一、实验目的

本次实验是针对贪心算法运用的算法设计及应用练习,旨在加深学生对该部分知识点的理解,提高学生运用该部分知识解决问题的能力。

二、实验步骤与要求

1.实验前复习课程所学知识以及阅读和理解指定的课外阅读材料;

2.学生独自完成实验指定内容;

3.实验结束后,用统一的实验报告模板编写实验报告。

4.提交说明:

(1)电子版提交说明:

a 需要提交Winrar压缩包,文件名为“《算法设计与分析》实验二_学号_姓名”,

如“《算法设计与分析》实验二_09290101_张三”。

b 压缩包内为一个“《算法设计与分析》实验二_学号_姓名”命名的顶层文件夹,

其下为两个文件夹,一个文件夹命名为“源程序”,另一个文件夹命名为“实验

报告电子版”。其下分别放置对应实验成果物。

(2)打印版提交说明:

a 不可随意更改模板样式。

b 字体:中文为宋体,大小为10号字,英文为Time New Roman,大小为10号

字。

c 行间距:单倍行距。

(3)提交截止时间:2012年12月7日16:00。

三、实验项目

1.传统的找零钱问题的算法及程序实现。

2.特殊的0-1背包问题的求解:本次求解的0-1背包问题的特点为每种物品各有M件,已知每个物品的单位价值,求使得所获价值最大的装包方案。

四、实验过程

找零钱问题:

#include

using namespace std;

void Zl(double num)

{

int leave=0;

int a[8];

leave = (int)(num*10)%10;

a[1] = leave/5;

a[0] = (leave%5)/1;

a[7] = num/50;

a[6] = ((int)num%50)/20;

a[5] = (((int)num%50)%20)/10;

a[4] = ((((int)num%50)%20)%10)/5;

a[3] = (((((int)num%50)%20)%10)%5)/2;

a[2] = ((((((int)num%50)%20)%10)%5)%2)/1;

if(a[0]!=0)

cout<<"需要找的0.1元个数为:"<

if(a[1]!=0)

cout<<"需要找的0.5元个数为:"<

if(a[2]!=0)

cout<<"需要找的1元个数为:"<

if(a[3]!=0)

cout<<"需要找的2元个数为:"<

if(a[4]!=0)

cout<<"需要找的5元个数为:"<

if(a[5]!=0)

cout<<"需要找的10元个数为:"<

if(a[6]!=0)

cout<<"需要找的20元个数为:"<

if(a[7]!=0)

cout<<"需要找的50元个数为:"<

}

void main ()

{

double num;

// int

cout<<"请输入你需要找的零钱数:"<

cin>>num;

Zl(num);

cout<

return;

}

五、实验总结

相关文档
最新文档