题目链接 900. 整数划分
主体思路
- 不考虑划分出来的数字的顺序
- 可以当成完全背包问题来处理
注意细节
- 不要忘记题目要求的取模
基础代码
package main
import "fmt"
func cal(N int) int {
const mod int = 1e9 + 7
dp := make([]int, N + 10)
dp[0] = 1
for i := 1; i <= N; i++ {
for j := i; j <= N; j++ { dp[j] = (dp[j] + dp[j - i]) % mod }
}
return dp[N]
}
func main() {
var (
ans int
N int
)
fmt.Scanf("%d", &N)
ans = cal(N)
fmt.Println(ans)
}