-
Description
-
一个正整数 n 可以表示成若干个正整数之和,形如: n=n1+n2+…+nk ,其中 n1≥n2≥…≥nk,k≥1 。
-
我们将这样的一种表示称为正整数 n 的一种划分。
-
现在给定一个正整数 n ,请你求出 n 共有多少种不同的划分方法。
-
-
Input
-
共一行,包含一个整数 n 。
-
-
Output
-
共一行,包含一个整数,表示总划分数量。
-
由于答案可能很大,输出结果请对 10^9+7 取模。
-
-
Sample Input 1
5
-
Sample Output 1
7
-
Hint
-
1≤n≤1000
-
-
代码部分:
#include <stdio.h>
int dp[1000];
int main(){
int n;
dp[0] = 1;
scanf("%d",&n);
for(int k = 1;k<=n;k++){
for(int i = k;i<=n;i++){
dp[i] += dp[i-k];
dp[i] = dp[i]%1000000007;
}
}
printf("%d",dp[n]);
return 0;
}

被折叠的 条评论
为什么被折叠?



