本题是参考了poj 的评论做的,确实十分经典,应该多向大牛们学习, 最少的盘子放了一个,这样每个盘子至少一个,n个盘子先放上n个,剩下的m-n个可以随便放 最少的盘子没有放,这样剩下的n-1个盘子还是随便放m个
#include<iostream>
using namespace std;
int f(int m,int n)
{
if(m<0)
return 0;
if(m == 0 || n ==1)
return 1;
return f(m-n,n)+f(m,n-1);//
}
int main()
{
int t, m,n;
cin>>t;
while(t--)
{
cin>>m>>n;
cout<<f(m,n)<<endl;
}
}