一道面试题 假设有一种货币有C1,C2,C3....Cn种面值(分),写一个程序,实现找零钱用的硬币数量最少。注:比如应该摘8分钱那么结果就是1分,2分,5分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的想法:设现在金额为m我们从最大的面值金额找起 m = Cn + (m-Cn);接下来我们继续找m-Cn,仍然从最大面值金额找起,m-Cn = Cn + (m-Cn-Cn),这里得判断,m-Cn与Cn的大小,如果m-Cn < Cn ,那么自然从C(n-1)找起,如此递归,但是我没有想到结束递归的条件呢!!呵呵 答:设现在金额为m,则:m整除最大的面值Cn,商就是Cn的个数,然后余数=>m,继续:整除次最大的面值Cn-1,商就是Cn的个数,然后余数=>m,继续 ...直到C1(当然:可进一步优化:不一定每一个面值Ci都要除) 背包算法才是正解,由大到小for循环不能得到最优解 myEclipe中的乱码问题? 读取内存中的properties 菜单可以做监听吗,在线等答案 为什么会出现这个错误啊? 已知一个Object,如何获取所有的成员变量? 弹出对话框的位置如何控制? 在jdk下面调用com出问题拉?劳驾知道的进来一下。 十万火急,请帮忙! 我要实现这样的功能,请各位给点思路 初学javaSe ,求大神帮做道题来理解代码 JAVA基础题目,有一些细节没有搞清楚,希望大家帮忙解决一下? 弱问,为什么Java类只能用Public和默认访问修饰符,而不能用其他两个。
商就是Cn的个数,然后余数=>m,继续 ...直到C1(当然:可进一步优化:不一定每一个面值Ci都要除)