案例介绍
具体的内容是这样的:
编写一个程序,提示输入一个代表总钱数的双精度值,然后确定每种纸币和硬币需要的最少数量以达到输入的总钱数。
假设人民币种类如下:佰圆纸钞,伍拾圆纸钞,贰拾圆纸钞,拾圆纸钞,伍圆纸钞,壹圆硬币,伍角硬币,壹角硬币,壹分硬币。(提示:使用求模运算符,自上而下求得每种钱币的数量)。
例如,输入值为127.63元人民币,那么程序应当输出如下结果:
-
1张佰圆纸钞;
-
0张伍拾圆纸钞;
-
1张贰拾圆纸钞;
-
0张拾圆纸钞;
-
1张伍圆纸钞;
-
2个壹圆硬币;
-
1个伍角硬币;
-
1个壹角硬币;
-
3个壹分硬币。
解题
思考
这题还是有思路的:
题干中说到:确定每种纸币和硬币需要的最少数量以达到输入的总钱数。
可以理解为:
- 尽量用最大数值的钱币去找零钱
- 那么我们应该从最大的钱币 开始 去扣掉这个数值
- 程序的顺序 从最大的钱币 到最小的钱币,直到找完
操作
因此,可以编写如下的代码:
import java.util.Scanner;
publ