早教吧作业答案频道 -->其他-->
设有各不同面值人民币若干,编写一个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
}
}
看了 设有各不同面值人民币若干,编...的网友还看了以下:
电脑程序求三位数a的反序输出b输入格式:进一个数字a输出格式:仅输出结果b样例输入:275样例输出 2020-04-07 …
1.编写程序计算电费:每月用电不超过50度,每度0.72元;超过50度时,超出部分每度1.20元. 2020-05-13 …
求c++程序(有注解),输入一串字母,输出对应的数字,a→1,b→2……z→26要求:输入的字母串 2020-05-17 …
c/c++数据结构一元多项式的求和一个一元多项式可以看作由若干个一元单项式按降幂排列成的线性表.请 2020-06-27 …
用C++设计一个程序,求出一元二次方程ax^2+bx+c=0的根系数a.b.c的值从键盘上输入.求 2020-06-27 …
编程题(1)从键盘输入8个数,用冒泡法排序。当输入数值0,按升序输出;当输入数值1,按降序输出。( 2020-07-23 …
对于一元多项式方程求解如何在输入方程时,不强求次数按从高到低排序,而且可以输入相同次数的项?譬如6 2020-08-02 …
c++数组急求答案(1)对一维数组中的元素进行排序,使其按照升序输出。数组元素的值使用随机数函数得 2020-08-03 …
C++求好人改错程序填空,不要改变与输入输出有关的语句.输入一个以回车结束的字符串(少于80个字符) 2020-11-28 …
怎样用链表的方法解决基于有序顺序的二分法查找数据?如3212//3表示要查找的元素,2表示一共有2个 2020-12-05 …