0
点赞
收藏
分享

微信扫一扫

Coding:取若干个1到n的整数可求和等于整数m,求出所有组合的个数

江南北 2022-07-13 阅读 70


要求

给定整数n,取若干个1到n的整数可求和等于整数m,编程求出所有组合的个数。比如当n=6,m=8时,有四种组合:[2,6], [3,5], [1,2,5], [1,3,4]。限定n和m小于120.

0-1背包问题解法:

#include <iostream>
#include <vector>

using namespace std;
int main()
{
int n,m;
cin>>n>>m;

vector<int> dp(m+1,0);
dp[0]=1;
for(int i=1;i<=n;i++) //注意是1到n
{
for(int j=m;j>=i;j--)
{
dp[j] += dp[j-i];
}
}
cout<<dp[m]<<endl;
return 0;
}


举报

相关推荐

整数n分解为k个数的和

0 条评论