1259: 找零钱
时间限制: 1 Sec 内存限制: 128 MB
提交: 5 解决: 5
题目描述
小智去超市买东西,买了不超过一百块的东西。收银员想尽量用少的纸币来找钱。
纸币面额分为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
#include<stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { int a1, b, c, d, e; a1 = n / 50; b = (n-50*a1)/20; c = (n-50*a1-20*b)/10; d = (n-50*a1-20*b-10*c)/5; e = n-50*a1-20*b-10*c-5*d; int a[60] = {0}; //printf("%d %d %d %d %d\n",a1,b,c,d,e); a[50] = a1;a[20] = b;a[10] = c; a[5] = d; a[1] = e; int mark = 0; for(int i = 50; i > 0; i--) { if(a[i]!=0) { printf("%d*%d",i,a[i]); a[i] = 0; break; } } for(int i = 50; i > 0; i--) { if(a[i]!=0) { printf("+%d*%d",i,a[i]); } } printf("\n"); } return 0; }