Coding:取若干个1到n的整数可求和等于整数m,求出所有组合的个数
生活随笔
收集整理的這篇文章主要介紹了
Coding:取若干个1到n的整数可求和等于整数m,求出所有组合的个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要求
給定整數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; }總結
以上是生活随笔為你收集整理的Coding:取若干个1到n的整数可求和等于整数m,求出所有组合的个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Coding: 整数反转
- 下一篇: Coding: 一亿个数找最大的1000