zoukankan      html  css  js  c++  java
  • 华为机试——求最小张数换零钱算法

    C_C++_XY_03.求最小张数换零钱算法

    • 题目描述:

    假设1元,5元,10元,50元,100元的人民币若干,实现一个能找到最少张数累计达到一个指定金额方法。

    如:67元,可分为67个1元钱。也可分为6个10元7个1元

    其中最少人民币分法为一张50元,一张10元,一张5元,两张1元,五张不同金额的拆分方法为最最少张数拆分法

    • 要求实现函数:

    void CalLeastChange(long lInputValue, int *iOutputRlt)

    【输入】 lInputValue: 输入整数金额

    【输出】 lOutputRlt: 输出计算结果

    【注意】仅考虑整数金额拆分方法

    • 示例

    输入:“67”

    输出:“5”

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63

    #include <iostream>
    using namespace std;
     
    void CalLeastChange(long lInputValue, int *iOutputRlt)
    {
        if (lInputValue <= 0)
        {
            *iOutputRlt = 0;
            return;
        }
     
        int count = 0;
        if (lInputValue >= 100)
        {
            while (lInputValue >= 100)
            {
                count++;
                lInputValue -= 100;
            }
        }
     
        if (lInputValue >= 50)
        {
            while (lInputValue >= 50)
            {
                count++;
                lInputValue -= 50;
            }
        }
        if (lInputValue >= 10)
        {
            while (lInputValue >= 10)
            {
                count++;
                lInputValue -= 10;
            }
        }
        if (lInputValue >= 5)
        {
            while (lInputValue >= 5)
            {
                count++;
                lInputValue -= 5;
            }
        }
        if (lInputValue >= 1)
        {
            while (lInputValue >= 1)
            {
                count++;
                lInputValue -= 1;
            }
        }
     
        *iOutputRlt = count;
    }
     
    int main() {
        int iOutputRlt = 0;
        CalLeastChange(67, &iOutputRlt);
        cout << iOutputRlt << endl;
        return 0;
    }
  • 相关阅读:
    各大高校OJ网站
    项目中调试SQLServer 方便的查看SQL语句的执行时间的方法
    一个联合查询的优化,排行榜排名
    IEdevelopToolbar ie浏览器的css代码调试工具
    SQL Server 2016/2014/2012/2008/2005/2000简体中文企业版下载地址
    sql server 数据库学习
    增加路由ip
    HTTP Error 500.0
    远程的一些知识
    Windows内置系统账户:Local system/Network service/Local Service 区别
  • 原文地址:https://www.cnblogs.com/helloweworld/p/3194211.html
Copyright © 2011-2022 走看看