70,022
社区成员




int f(m,n)
{
if (m==1)
return 1;
if (n==1)
return 1;
if (m<n)
return f(m,m);//因为对于n>m的部分,找不到一组可能值.
if (m==n)
return (1+f(m,n-1));//因为对于n==m是,只存在一组解,就是m=n.
return f(m,n-1)+f(m-n,n);
//因为m=n+x+......(x<=n) + m=x+......(x<n);
//对m=m=x+......(x<n)就是f(m,n-1);
//对m=n+x+......(x<=n),就是 m-n = x+......(x<=n),就是f(m-n,n);
}