/**
* 功能:给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法。
*/
public static int makeChange(int n){ return makeChange(n,25); } /** * 递归的终止条件:完全简化为1分。 * @param n * @param denom * @return */ public static int makeChange(int n,int denom){ int next_denom=0; switch(denom){ case 25: next_denom=10; break; case 10: next_denom=5; break; case 5: next_denom=1; break; case 1: return 1; } int ways=0; for(int i=0;i*denom<=n;i++){ ways+=makeChange(n-i*denom,next_denom); } return ways; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-07-30 22:08:16