本文是针对西安交通大学C++慕课第二周编程作业第四题的讲解。
题目要求:
为顾客找零钱时,希望选用的纸币张数最少。例如73元,希望零钱的面值为五十元1张,二十元1张,一元3张。设零钱面值有五十元、二十元、十元、五元和一元,请编写程序,用户输入100以下的数,计算找给顾客的各面值的纸币张数,数据间以空格隔开。
输入格式:
一个小于100、大于等于0的整数。
输出格式:
5个整数,数据间用一个英文空格分隔。
输入样例:
73
输出样例:
1 1 0 0 3
本题有多种解法,这里给出一个非常差劲的代码,日后代码能力精进了再来改进(哈哈哈)
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int c, wushi, ershi, shi, wu, yi;
cin>>c;
wushi = c>50? c/50: 0;
cout<<wushi;
ershi = c-50;
ershi = (ershi >0) ? ershi/20 : 0;
cout<<" "<<ershi;
shi=c - wushi * 50 - ershi * 20;
shi = (shi > 0)? shi/10 : 0;
cout<<" "<<shi;
wu = c - 50 - ershi * 20 - shi *10;
wu = (wu > 0)? wu/5 : 0;
cout<<" "<<wu;
yi = c - 50 - ershi * 20 - shi *10 - wu * 5;
yi = (yi > 0)? yi : 0;
cout<<" "<<yi<<endl;
return 0;
}