早教吧作业答案频道 -->其他-->
设有各不同面值人民币若干,编写一个java程序,对任意输入的一个金额,给出能组合出这个值的最佳可能要求使用的币值个数最少.例如,给出1.46元,将得到下列结果:1.46元=1元1个2角2个1分1个(
题目详情
设有各不同面值人民币若干,编写一个java程序,对任意输入的一个金额,给出能组合出这个值的最佳可能
要求使用的币值个数最少.
例如,给出1.46元,将得到下列结果:
1.46元=
1元 1个
2角 2个
1分 1个
(希望用java流程控制语句做,急用!)
要求使用的币值个数最少.
例如,给出1.46元,将得到下列结果:
1.46元=
1元 1个
2角 2个
1分 1个
(希望用java流程控制语句做,急用!)
▼优质解答
答案和解析
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
}
}
看了 设有各不同面值人民币若干,编...的网友还看了以下:
星号三角形(C语言)Description 编写一个程序输出一个由n行星号“*”构成的三角形.In 2020-05-14 …
编写一个程序,给定一个正整数,判断它是否为素数,并输出判断结果.(要求:以面向对象程序设计的基本思 2020-05-17 …
一道程序题,while的条件不晓得怎么写,大家帮帮忙!编写一个程序,该程序要求用户输入一个华氏温度 2020-05-20 …
编写一个程序,其功能是:将两个两位数的正整数a,b合并成一个整数放在c中.合并的方式是:1、编写一 2020-06-04 …
编写一个程序,计算两个非0实数的加减乘除的运算结果!谁帮我编写这个程序?程序的步骤! 2020-06-27 …
编写一个程序,计算s=a+aa+aaa+.......+aa.....a(如2+22+222+22 2020-07-19 …
求好心人帮忙做做VB程序,不能用循环,用IFcase之类的1.编写一个程序,对某次测验的分数进行统计 2020-11-04 …
用C#编写一个程序,需求如下:7个盒子,前6个盒子可以放置0~33的数字,第七个盒子可以放置0~16 2020-11-17 …
C语言统计不同单词个数编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句 2020-11-26 …
一个简单的C程序一学习小组有6名同学,编写程序录入学生的学号(16位),姓名(最多4个汉字),成绩。 2020-12-06 …