当前位置: 首页 > news >正文

零钱兑换-输出组合数

 1.暴力递归

(1)剩余金额小于0,无解

        剩余金额等于0,有解

        剩余金额大于0,继续递归

(2)从大的硬币到小的硬币,可以减少循环次数

#include <bits/stdc++.h>
using namespace std;int amount;
int coins[10]={5,2,1};
int res(int index,int* coins,int remainder)
{
//    剩余金额小于0,无解if(remainder<0){return 0;}
//    剩余金额等于0,有解else if(remainder==0){return 1;}
//    剩余金额大于0,继续递归else{int mycount=0;for(int i=index; i<3; i++){mycount+=res(i,coins,remainder-coins[i]);}return mycount;}}int main()
{amount=5;cout<<res(0,coins,amount);
}

如果要输出方案的话要用栈,让gpt写一下

#include <iostream>
#include <stack>
using namespace std;int amount;
int coins[10] = {1, 2, 5};void printCombination(stack<int>& combination) {stack<int> tempStack;while (!combination.empty()) {tempStack.push(combination.top());combination.pop();}cout << "Combination: ";while (!tempStack.empty()) {cout << tempStack.top() << " ";combination.push(tempStack.top());tempStack.pop();}cout << endl;
}int res(int index, int* coinList, int remainder, stack<int>& combination) {if (remainder < 0) {return 0;} else if (remainder == 0) {printCombination(combination);return 1;} else {int mycount = 0;for (int i = index; i < 3; i++) {combination.push(coins[i]);mycount += res(i, coinList, remainder - coins[i], combination);combination.pop();}return mycount;}
}int main() {amount = 5;stack<int> combination;cout << "Total combinations: " << res(0, coins, amount, combination) << endl;return 0;
}

http://www.lryc.cn/news/120935.html

相关文章:

  • Mybatis 小结
  • 【Cartopy】库的安装和瓦片加载(天地图、高德等)
  • TCPDF生成PDF文件,含jpjraph生成雷达图
  • Flink-串讲面试题
  • 如何培养对技术的热爱
  • Vue响应式数据的原理
  • pytest fixture 用于teardown工作
  • 39 printf 的输出到设备层的调试
  • 数字普惠金融、数字创新与经济增长—基于省级面板数据的实证考察(2011-2021年)
  • 控制renderQueue解决NGUI与Unity3D物体渲染顺序问题
  • 概率论与数理统计:第二、三章:一维~n维随机变量及其分布
  • BOLT- 识别和优化热门的基本块
  • Golang 中的 time 包详解(四):函数详解
  • 【前端 | CSS】5种经典布局
  • 腾讯云宣布VPC网络架构重磅升级,可毫秒级感知网络故障并实现自愈
  • vue 路由页面跳转
  • Vue toRefs:在Vue中不失去响应式的情况下解构属性
  • 自定义element-plus的弹框样式
  • Linux:iptables防火墙
  • MongoDB文档-进阶使用-spring-boot整合使用MongoDB---MongoTemplate完成增删改查
  • 设计模式十四:责任链模式(Chain of Responsibility Pattern)
  • 将商城项目放到docker-centos7中
  • C# Winform 自动获取 软件版本号
  • 基于C++实现了最小反馈弧集问题的三种近似算法(GreedyFAS、SortFAS、PageRankFAS)
  • 奶牛用餐 优先队列 java
  • 包管理机制pip3
  • liunx在线安装tomcat
  • 导入示例工程出现error: failed to start ability. Error while Launching activity错误的解决办法
  • 【深入了解PyTorch】PyTorch分布式训练:多GPU、数据并行与模型并行
  • linux 下 网卡命名改名