硬币凑整问题
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;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?