遇到好几次了,觉得很重要,有必要小小背一下 。。。
#include<stdio.h>
int compute(int n,int m)
{
if(n == 1 || m == 1)
return 1;
else if(n < m)
return compute(n,n);
else if(n == m)
return 1 + compute(n,m - 1);
else
return compute(n,m - 1) + compute(n - m,m);
}
unsigned long inPart(int n)
{
return compute(n,n);
}
int main()
{
int s;
int n;
scanf("%d",&s);
while(s--)
{
scanf("%d",&n);
printf("%d\n",inPart(n));
}
return 0;
}