整数划分问题

题目连接:http://acm.nyist.net/JudgeOnline/problem.php?pid=90

最优代码:

#include<iostream>

using namespace std;
int q(int n,int m)
{
if((n<1)||(m<1))
return 0;
if((n==1)||(m==1))
return 1;
if(n<m)
return q(n,n);
if(n==m)
return q(n,m-1)+1;
return q(n,m-1)+q(n-m,m);
}
int main()
{
int zushu,n;
cin>>zushu;
while(zushu--)
{
cin>>n;
cout<<q(n,n)<<endl;
}
return 0;

你可能感兴趣的:(整数划分问题)