硬币凑整问题

package demo2;

public class P107 {
//硬币凑整问题,有1/5/10/25元    四种面值的硬币,要凑出n元共有多少种组合
//思路:为了有序不遗漏,先从大面值硬币开始考虑,例如凑出50元可以考虑
//取25*2	或	25*1	或	25*0
//再考虑还要凑多少元,取几个10、之后取几个5、最后取几个1
	public static void main(String[] args) {
		int[] coins= {1,5,10,25};
		for(int i=1;i<=30;i++) {
			System.out.println(i+"-----"+payCoins(i, coins, 3));
		}
	}

	static int payCoins(int rest,int[] coins,int index) {
		if(rest==0)	 return 1;
		if(index==0) return 1;
		int result=0;
		for(int i=0; i*coins[index]<=rest;i++) {
			result+=payCoins(rest-i*coins[index], coins, index-1);
		}
		return result;
	}
}
posted @   fighterk  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示