(9)计算人民币各个面额的数量

描述

从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。

输入

一个小于1000的正整数。

输出

输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数
这里写图片描述

使用了一种比较麻烦的算法

#include<iostream>
using namespace std;

int main(){

    int num;//输入的钱总额
    int N100, Y100;//100元的张数,已经总额除以100后的余数,依次类推
    int N50, Y50;
    int N20, Y20;
    int N10, Y10;
    int N5, Y5;
    int N1;

    cin >> num;

    N100 = num / 100;//100元的张数
    if (num % 100 == 0){//如果刚好能被100整除,就说明没有50,20,10,5,1的面额了
        N50 = 0;
        N20 = 0;
        N10 = 0;
        N5 = 0;
        N1 = 0;
    }
    else{//如果不能整除,就将余数取出
        Y100 = num % 100;
        N50 = Y100 / 50;
        if (Y100 % 50 == 0){
            N20 = 0;
            N10 = 0;
            N5 = 0;
            N1 = 0;
        }
        else{
            Y50 = Y100 % 50;
            N20 = Y50 / 20;
            if (Y50 % 20 == 0){
                N10 = 0;
                N5 = 0;
                N1 = 0;
            }
            else{
                Y20 = Y50 % 20;
                N10 = Y20 / 10;
                if (Y20 % 10 == 0){
                    N5 = 0;
                    N1 = 0;
                }
                else{
                    Y10 = Y20 % 10;
                    N5 = Y10 / 5;
                    if (Y10 % 5 == 0){
                        N1 = 0;
                    }
                    else{
                        Y5 = Y10 % 5;
                        N1 = Y5;
                    }
                }
            }
        }
    }

    cout << N100 << endl << N50 << endl << N20 << endl << N10 << endl << N5 << endl << N1 << endl;
    system("pause");
    return 0;
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值