这是一个生活实际问题,当你购买了不到100元的商品,却交给了售货员一张100元的货币…售货员就得考虑如何组合给你找钱。
题目:找零钱最佳组合
假设商店货品价格皆不大于100元(且为整数),若顾客付款在100元,求找给顾客之最少货币张数?
(货币面值50元,10元,5元,1元四种)
代码:
#include<stdio.h>
int main()
{
int m50, m20, m10, m5, m1, i6, i7, x, y, z;
float price, b, c;
printf("输入购买商品价格(单位:元):");
scanf("%f", &price);
b = ((int)(10.0*price+0.5))/10.0;
c = 100.0 - b;
if(b<=0.0||b>=100.0)
printf("请重新输入\n");
else
{
x=((int)(10*c))%10;
y=((int)(10*c))%100/10;
z=10*c/100;
if(x>=5)
i6=1,i7=x-5;
else
i6=0,i7=x;
if(y>=5)
m5=1,m1=y-5;
else
m5=0,m1=y;
m50=z/5;
m20=(z%5)/2;
m10=(z%5)%2;
printf("共找零%.1f元:\n50元%d张,20元%d张,10元%d张,5元%d张,1元%d张",c,m50,m20,m10,m5,m1);
}
}
版权声明:本文为qq_45838752原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。