• Hua Wei 机试题目二


    题目描述:
    假设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”

    #include<iostream>
    using namespace std;
    
    void CalLeastChange(long lInputValue, int *iOutputRlt)
    {
        int highNum=lInputValue/(10*10);
        int lowerNum=lInputValue-(lInputValue/10)*10;
        int curNum=(lInputValue/10)%10;
    
        int count=highNum;
        if(curNum>=5)
        {
            count++;
            curNum-=5;
        }
        count=count+curNum;
    
        if(lowerNum>=5)
        {
            count++;
            lowerNum-=5;
        }
        count=count+lowerNum;
    
        *iOutputRlt=count;
    
        cout<<*iOutputRlt<<endl;
    
    }
    
    int main()
    {
        int lInputValue=1238;
        int lInputValue1=67;
        int iOutputRlt[]={0};
        CalLeastChange(lInputValue,iOutputRlt);
        CalLeastChange(lInputValue1,iOutputRlt);
        return 0;
    }
  • 相关阅读:
    重载和重写的定义
    方法的重载与重写有什么区别?
    java: while 和do while区别
    java中的运算符
    java 8种基本数据类型
    java.面向对象特征
    java语言的特点
    java.注释类型
    char 和 varchar2 区别
    使用sql对数据库进行简单的增删改查
  • 原文地址:https://www.cnblogs.com/yvictoryr/p/3826741.html
Copyright © 2020-2023  润新知