练习专区

今天的一小步就是明天的一大步
Problem 1082 整数划分问题
Accepted: 5   Total Submit: 13
Time Limit: 1000ms   Memory Limit: 30720KB
Description

将正整数n表示成一系列正整数之和,n=n1+n2+...+nk,其中n1>=n2>=...>=nk>=1,k>=1.
正整数n的不同划分个数称为n的划分数.如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.
对于这种问题,小陈就去找规律,终于他发现有这些规律:
   f(n,m)   = 1 ;     (m=1或n=1)
   f(n,m)=f(n,n)  ;    (n<m)
   f(n,m)=1+f(n,m-1)   ;      (n=m!=1)
   f(n,m)=f(n,m-1)+f(n-m,m)  ; (n>m>=1)
n是指被划分的数,m是指划分中出现的最大数。如f(6,2)=4,具体划分是:2+2+2,2+2+1+1,2+1+1+1+1,1+1+1+1+1+1。
可是他不懂得编程,这怎么办,很抓狂。只能怪他平时不好好学编程,他只好求助你们。

Input

输入有若干行,每行一个正整数n.

Output

对应输出n划分的个数.

Sample Input
6
3
Sample Output
11
3
Hint
这题学校OJ写得不是很清楚,这里已经修正,别被坑了哇
提交     返回