zoukankan      html  css  js  c++  java
  • 【ACM小白成长撸】--贪婪法解硬币找零问题

    question:假设有一种货币,它有面值为1分、2分、5分和1角的硬币,最少需要多少个硬币来找出K分钱的零钱。按照贪婪法的思想,需要不断地使用面值最大的硬币。如果找零的值小于最大的硬币值,则尝试第二大的硬币,依次类推。

     1 /*程序的版权和版本声明部分:
     2 **从《C++程序设计思想与方法》(作者:翁惠玉)P61转载
     3 */
     4 #include <iostream>
     5 
     6 using namespace std;
     7 
     8 #define ONEFEN 1
     9 #define TWOFEN 2
    10 #define FIVEFEN 5
    11 #define ONEJIAO 10
    12 
    13 int main(void)
    14 {
    15     int money;
    16     int onefen = 0, twofen = 0, fivefen = 0, onejiao = 0;
    17 
    18     cout << "输入要找零的钱(以分为单位):";
    19     cin >> money;
    20 
    21     //不断尝试每一种硬币
    22     while(money >= ONEJIAO)
    23     {
    24         onejiao++;
    25         money = money - ONEJIAO;
    26     }
    27     while(money >= FIVEFEN)
    28     {
    29         fivefen++;
    30         money = money - FIVEFEN;
    31     }
    32     while(money >= TWOFEN)
    33     {
    34         twofen++;
    35         money = money - TWOFEN;
    36     }
    37     while(money >= ONEFEN)
    38     {
    39         onefen++;
    40         money = money - ONEFEN;
    41     }
    42 
    43     cout << "1角硬币数:" << onejiao << endl;
    44     cout << "5分硬币数:" << fivefen << endl;
    45     cout << "2分硬币数:" << twofen << endl;
    46     cout << "1分硬币数:" << onefen << endl;
    47 
    48     return 0;
    49 }
  • 相关阅读:
    得到cxgrid筛选后的记录数
    服务器之ipmitool
    CentOS6.8部署SVN
    NGINX快速部署
    Nginx模块系列之auth_basic模块
    持续集成、持续交付、持续部署
    CentOS6.X 升级内核至 3.10
    Dmidecode
    新建虚拟机
    Linux之(tomcat)服务之服务调优
  • 原文地址:https://www.cnblogs.com/zpc-uestc/p/5951167.html
Copyright © 2011-2022 走看看