#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
///5.种情况
/*
@1.当n=1时,q(1,m)=1
@2.当m=1时,q(n,1)=1
@3.当m=n时,q(n,m)=1+q(n,n-1);
@4.当m<n时,q(n,m)=q(n,m-1)+q(n-m,m);
@5.当m>n时,q(n,m)=q(n,n)
*/
int q(int n,int m)
{
if((n<1)||(m<1))
return 0;
if((n==1)||(m==1))
return 1;
if(m==n)
return q(n,m-1)+1;
if(m<n)
return q(n,m-1)+q(n-m,m);
return q(n,n);
}
int main()
{
cout<< q(6,6);
return 0;
}
运行结果如下: