求赞!
方法一:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll n,dp[1010];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
dp[0]=1;
for(ll i=1; i<=n; i++)
for(ll j=i; j<=n; j++) dp[j]=(dp[j]+dp[j-i])%mod;
cout<<dp[n];
return 0;
}
方法二:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll n,dp[1010][1010],ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
dp[0][0]=1;
for(ll i=1; i<=n; i++)
for(ll j=1; j<=i; j++)
dp[i][j]=(dp[i-1][j-1]+dp[i-j][j])%mod;
for(ll i=1; i<=n; i++) ans=(ans+dp[n][i])%mod;
cout<<ans;
return 0;
}