设有各不同面值人民币若干,编写一个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流程控制语句做,各位大神帮帮忙,急用!!!)
展开
 我来答
lzuhy
推荐于2017-11-26 · TA获得超过1131个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:192万
展开全部
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
}

}
yanbaoaini1314
2014-03-21 · TA获得超过109个赞
知道答主
回答量:177
采纳率:100%
帮助的人:120万
展开全部
其实很简单 。你定义好元 角 分的值 然后一层一层取模 就行了 就这么简单。
比如54.53元
你定义了 50元 1元 5角 1分
取50元的模 等于1 剩下4.53元 取1元的模 等于4 剩下0.53 取5角的模等于1 剩下0.03 取1分的模 等于3 一直取模到0为止
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-21
展开全部
核心是整除的思想。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式