描述
将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。
正整数n 的这种表示称为正整数n 的划分。正整数n 的不同的划分个数称为正整数n 的划分数。
5样例输出
7提示
5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1, 1+1+1+1+1
#include<iostream>
using namespace std;
int fun(int x,int y){
if(x<y) return fun(x,x);
if(x==0||y==1) return 1;
return fun(x,y-1)+fun(x-y,y);
}
int main(){
int n;
while(cin>>n){
cout<<fun(n,n)<<endl;
}
return 0;
}