刚做完亚马逊的在线测试题,分享一个给大家讨论讨论
Given coins with values 1, 3, and 5. 给出硬币的面值1,3,5And the sum S is set to be 11. 算出最少要多少个硬币才可以得到总数11,硬币的个数可以随意
比如如果得到11,所提供的硬币的面额为1,3,5,那么最少用3个硬币就可以:一个一块的,加2个五块的。
@para Vector a : 硬币的面额, S:要计算的总和。
@return : 最少需要的硬币数
int static int MinCoinNumbers(Vector<Integer> a, S){
} --------------------编程问答-------------------- 对硬币面值倒序排序,然后遍历硬币数组:
coins_x = N / coins_value;
N = N % coins_value;
sum(coins_x)即为所求 --------------------编程问答--------------------
这个解成立条件是一定存在面值为1的硬币 --------------------编程问答--------------------
硬币的面值是任意的,而且不需要用到所用的面值,每个面值的硬币个数也是随意的
补充:Java , Java SE