我爱橙 发表于 2022-5-3 23:44:22

EX2.18 找零钱 √

本帖最后由 我爱橙 于 2022-5-4 21:12 编辑

假定有 10元、5 元、 1元、 5角、 1角共 5 种面值零钱,在给顾客找零钱时,一般都会尽可能地选用零钱个数最少的方法。例如,当要给某顾客找 46 元 5 角时,会给他四个10元, 1 个 5元,1个1元和 1 个 5角的零钱。试编写一个程序,输入的是要找给顾客的零钱(以角为单位,例如46元5角应输入465),输出的是应该找回的各种面值零钱的数目,并保证找回的零钱总个数最少。

输入格式:
"%d"

输出格式:
"%d个10元,%d个5元,%d个1元,%d个5角和%d个1角"

输入样例:
在这里给出一组输入。例如:

465
输出样例:
在这里给出相应的输出。例如:

4个10元,1个5元,1个1元,1个5角和0个1角


#include<stdio.h>

main()

{

      int n,a,b,c,d,e;
      printf("要找给顾客的零钱:");
      scanf("%d",&n);
      a=(n-n%100)/100;
      b=(n-a*100-(n-a*100)%10)/50;
      c=(n-a*100-b*50-(n-a*100-b*50)%10)/10;
      d=(n-a*100-b*50-c*10-(n-a*100-b*50-c*10)%5)/5;
      e=n-a*100-b*50-c*10-d*5;
      printf("%d个10元,%d个5元,%d个1元,%d个5角和%d个1角",a,b,c,d,e);

      return 0;

}
页: [1]
查看完整版本: EX2.18 找零钱 √