public class Money {
public static void main(String[] args) {
// 所有金额以分为单位
int money = 146;
// 所有钞票面以分为单位,从大到小排列,10000是100块,20是2角
int[] rmbs = { 10000, 5000, 2000, 1000, 500, 100, 50, 20, 10, 5, 2, 1 };
// rest是剩余的钱,刚开始为所求的钱,随便选钱rest越变越小,直到为0
int rest = money;
for (int rmb : rmbs) {
// num为钞票个数
int num = rest / rmb;
if (num > 0) {
rest = rest - rmb * num;
System.out.println("钞票面额(分):" + rmb + " 个数:" + num + " 还差多少钱(分):" + rest);
// 钱凑齐了,程序结束
if (rest == 0) {
System.exit(1);
}
} // end if num
} // end for rmb
}
}
其实很简单 。你定义好元 角 分的值 然后一层一层取模 就行了 就这么简单。
比如54.53元
你定义了 50元 1元 5角 1分
取50元的模 等于1 剩下4.53元 取1元的模 等于4 剩下0.53 取5角的模等于1 剩下0.03 取1分的模 等于3 一直取模到0为止
核心是整除的思想。