问题 G: 找零钱
时间限制: 1 Sec 内存限制: 128 MB题目描述
小智去超市买东西,买了不超过一百块的东西。收银员想尽量用少的纸币来找钱。
纸币面额分为50 20 10 5 1 五种。请在知道要找多少钱n给小明的情况下,输出纸币数量最少的方案。 1<=n<=99;
纸币面额分为50 20 10 5 1 五种。请在知道要找多少钱n给小明的情况下,输出纸币数量最少的方案。 1<=n<=99;
输入
有多组数据 1<=n<=99;
输出
对于每种数量不为0的纸币,输出他们的面值*数量,再加起来输出
样例输入
25
32
样例输出
20*1+5*1
20*1+10*1+1*2
User: 吴锦诚 Date: 2018/6/4
#include <iostream>
using
namespace
std;
int
main(){
int
money ,i;
bool
index =
false
;
int
coins[5][2];
coins[0][0] = 50;
coins[1][0] = 20;
coins[2][0] = 10;
coins[3][0] = 5;
coins[4][0] = 1;
for
(i = 0;i<5;i++){
coins[i][1] = 0;
}
while
(cin>>money){
index =
false
;
i=0;
while
(
true
){
while
(money-coins[i][0]>=0){
money -= coins[i][0];
coins[i][1]++;
}
i++;
if
(i ==5)
break
;
}
for
(i = 0;i<5;i++){
if
(coins[i][1]>0){
if
(index){
cout<<
"+"
;
}
cout<<coins[i][0]<<
"*"
<<coins[i][1];
index =
true
;
}
}
cout<<endl;
for
(i = 0;i<5;i++){
coins[i][1] = 0;
}
}
return
0;
}
/**************************************************************
Problem: 5038
User: morizunzhu
Language: C++
Result: 正确
Time:0 ms
Memory:2020 kb
****************************************************************/