设有各不同面值人民币若干,编写一个java程序,对任意输入的一个金额,给出能组合出这个值的最佳可能
要求使用的币值个数最少。例如,给出1.46元,将得到下列结果:1.46元=1元1个2角2个5分1个1分1个(希望用java流程控制语句做,各位大神帮帮忙,急用!!!)...
要求使用的币值个数最少。
例如,给出1.46元,将得到下列结果:
1.46元=
1元 1个
2角 2个
5分 1个
1分 1个
(希望用java流程控制语句做,各位大神帮帮忙,急用!!!) 展开
例如,给出1.46元,将得到下列结果:
1.46元=
1元 1个
2角 2个
5分 1个
1分 1个
(希望用java流程控制语句做,各位大神帮帮忙,急用!!!) 展开
3个回答
展开全部
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
}
}
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
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询