整数划分问题
将一个正整数n表示成一系列正整数之和,
n=n1+n2+n3+…nk(其中,n1>=n2>=…>=1,k>=1)
如6;
5+1;
4+2,4+1+1;
3+3,3………….
…………..
1+1+1+1+1+1
///
#include <iostream>
using namespace std;
int split(int n, int m)
{
if (n == 1 || m == 1)
{
return 1;
}
if (n < m)
{
return split(n, n);
}
if (n == m)
{
return 1 + split(n, m-1);
}
if (n > m)
{
return split(n-m, m) + split(n, m-1);
}
}
int main()
{
int n,sum=0;
cin>>n;
for(int i=1;i<=n-1;i++)
sum=sum+split(n-i,i);
cout<<sum+1<<endl;
return 0;
}
///