读取一个带有两个小数位的浮点数,这代表货币价值。
在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的数量尽可能少。
钞票的面值是100,50,20,10,5,2。
硬币的面值是1,0.50,0.25,0.10,0.05和0.01。
输入格式:
输入一个浮点数N(0≤N≤1000000.00)。
输出格式:
参照输出样例,输出每种面值的钞票和硬币的需求数量。
输入样例:
112.03
输出样例:
NOTAS:
1 nota(s) de R$ 100.00
0 nota(s) de R$ 50.00
0 nota(s) de R$ 20.00
1 nota(s) de R$ 10.00
0 nota(s) de R$ 5.00
1 nota(s) de R$ 2.00
MOEDAS:
0 moeda(s) de R$ 1.00
0 moeda(s) de R$ 0.50
0 moeda(s) de R$ 0.25
0 moeda(s) de R$ 0.10
0 moeda(s) de R$ 0.05
3 moeda(s) de R$ 0.01
#include<stdio.h>
int main(void){
float m;
scanf("%f",&m);
int i=0;
float a[12]={100.0,50.0,20.0,10.0,5.0,2.0,1.0,0.5,0.25,0.1,0.05,0.01};
int b[12]={0};
int j=0;
while(m>=a[i]){
if (m < 0.01) {
b[j]++;
break;
}
m-=a[i];
b[j]++;
while(m<a[i]){
i++;
j++;
}
}
printf("NOTAS:\n");
for(int l=0;l<6;l++){
printf("%d nota(s) de R$ %.2f\n",b[l],a[l]);
}
printf("MOEDAS:\n");
for(int l=6;l<11;l++){
printf("%d moeda(s) de R$ %.2f\n",b[l],a[l]);
}
if(b[11]>0){
printf("%d moeda(s) de R$ %.2f\n",b[11]+1,a[11]);
}else{
printf("%d moeda(s) de R$ %.2f\n",b[11],a[11]);
}
return 0;
}