牛客真题(17)-整数求和

今天继续刷牛客真题,求和为给定整数的集合有多少种。

分析:
01背包问题

问题:
1、找规律;

附上C++代码:

#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++)
    {
        for(int j=m;j>=i;j--)
            dp[j]+=dp[j-i];
    }
    cout<<dp[m]<<endl;
    return 0;
}

附上Python代码:

n,m=map(int,input().split())

t=[0]*(m+1)
t[0]=1
for i in range(1,n+1):
    for j in range(m,i-1,-1):
        t[j]+=t[j-i]
print(t[-1])

猜你喜欢

转载自blog.csdn.net/JerryZengZ/article/details/89210195
今日推荐