第四章

  1. 你对贪心算法的理解

  贪心算法从每个决策中选择最优,即作出局部最优而解出全局最优

  2.请选择一道作业题目说明你的算法满足贪心选择性质  

  人民币的面值有100、50、20、10、5、2、1元。请你输出找零纸币数最少的方案

  输入格式:

  两个整数,分别表示付款金额和消费金额

  输出格式:

  输入找零方案。包含若干行,每行包含两个数字,纸币面额和纸币数量

  输入样例:

  10 3
 

  输出样例:

  在这里给出相应的输出。例如:

  5 1
  2 1

  代码:

  

#include <iostream>
using namespace std;
int main()
{
    int m,w,z,i,j;
    int a[7]={100,50,20,10,5,2,1},b[7]={0};
        
    cin>>m>>w;
    m-=w;
    for(i=0;i<7;i++)
    {
        while(m>=a[i])
        {
            m-=a[i];
            b[i]++;
        }
    }
   for(j=0;j<7;j++)
    {
        if(b[j])
        {
            cout<<a[j]<<' '<<b[j]<<endl;
        }
    }
    return 0;
}

  通过每次找最优的一张零钱,不断进行这个操作,最终可得全局最优。

         请说明在本章学习过程中遇到的问题及结对编程的情况

  贪心算法的学习中,学会了找最想要的或者说最优的解时,往往需要苦思冥想,但一旦想出来这类题就轻而易举的解决了。

posted on 2020-11-15 10:54  lzchenjin  阅读(82)  评论(0编辑  收藏  举报

导航