编写程序从键盘上输入一个指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张,要求钱的张数最少。
#include "stdio.h"
//可以使用贪心法,也可以使用枚举法,但是时间效率太差
int main() {
float a;
int b;
scanf("%f",&a);
if (a>=100)
{
b=a/100;
a=a-b*100;
printf("100元:%d ",b);
}
else
printf("100元:0 ");
if (a>=50)
{
b=a/50;
a=a-b*50;
printf("50元:%d ",b);
}
else
printf("50元:0 ");
if (a>=10)
{
b=a/10;
a=a-b*10;
printf("10元:%d ",b);
}
else
printf("10元:0");
if (a>=5)
{
b=a/5;
a=a-b*5;
printf("5元:%d ",b);
}
else
printf("5元:0 ");
if (a>=2)
{
b=a/2;
a=a-b*2;
printf("2元:%d ",b);
}
else
printf("2元:0 ");
if (a>=1)
{
b=a/1;
a=a-b*1;
printf("1元:%d ",b);
}
else
printf("1元:0 ");
if (a>=0.1)
{
b=a/0.1;
a=a-b*0.1;
printf("1角:%d ",b);
}
else
printf("1角:0 ");
if (a>=0.05)
{
b=a/0.05;
a=a-b*0.05;
printf("5分:%d ",b);
}
else
printf("5分:0 ");
if (a>=0.01)
{
b=a/0.01;
a=a-b*0.01;
printf("1分:%d ",b);
}
}