描述
从键盘输入一指定金额(以元为单位,如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;
}