#T557819. 整数划分问题(递归求解)

整数划分问题(递归求解)

题目描述

将正整数n表示成一系列正整数之和:n = n1n_1 + n2n_2 + … + nkn_k,其中n1n_1n2n_2≥…≥nkn_k≥1,k≥1。正整数n的这种表示称为n的划分。n的不同划分个数称为n的划分数,记为p(n)。例如,6有如下11种不同的划分,所以p(6) = 11。

6;
5 + 1;
4 + 2,4 + 1 + 1;
3 + 3,3 + 2 + 1,3 + 1 + 1 + 1;
2 + 2 + 2,2 + 2 + 1 + 1,2 + 1 + 1 + 1 + 1;
1 + 1 + 1 + 1 + 1 + 1。

输入n,求n的划分数p(n)。

输入格式

输入数据占一行,为一个整数n,1≤n≤400。

输出格式

输出占一行,为n的划分数p(n)。

输入输出样例 #1

输入 #1

120

输出 #1

1844349560

输入输出样例 #2

输入 #2

400

输出 #2

6727090051741041926

说明/提示

本题出处

本题源自以下教材的编程习题:王桂平, 周思益, 周迎川著. C++编程与信息学竞赛数学基础, 北京大学出版社, 2025年7月出版.