首页 > 试题广场 >

整数求和

[编程题]整数求和
  • 热度指数:4175 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
给定整数n,取若干个1到n的整数可求和等于整数m,编程求出所有组合的个数。比如当n=6,m=8时,有四种组合:[2,6], [3,5], [1,2,5], [1,3,4]。限定n和m小于120

输入描述:
整数n和m


输出描述:
求和等于m的所有组合的个数。
示例1

输入

6 8

输出

4
头像 bandiaoz
发表于 2024-12-20 16:41:44
解题思路 这是一个动态规划问题,需要求解所有和为 的不同整数组合个数 状态定义: 表示使用 到 这些数字,凑成和为 的组合数 状态转移方程: 当 时: 当 时: 基础情况: (和为0的组合只有一种,即不选任何数) 代码 cpp java python 展开全文
头像 AC不要TLE
发表于 2025-03-17 21:27:54
因为每个数只能用一次,所以可以类似回溯的算法,或者更像是 DFS 的方法搜全部可能的解决方案即可 #include <iostream> #include <vector> using namespace std; void backtrace(int n, int m, 展开全文