//就是把一个大问题划分成几个子问题,不断递归,应该不难理解,还有就是输入10000估计要废掉,内存吃不消,一般的可以计算,如果计算打算,把int 全定义 unsigned __int64,那么输出就是 printf("%I64u",); 的形式
#include <stdio.h>
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);
}
void main()
{
int n;
scanf("%d",&n);
printf("p(%d,%d)=%d\n",n,n,q(n,n));
}
温馨提示:答案为网友推荐,仅供参考