poj 1664

时间:2022-06-26 19:30:17

http://poj.org/problem?id=1664

题目是中文的,一个递归的题目

把每一次的苹果分为两类

Ⅰ:所以盘子都放一个,然后其他的在随便放;

Ⅱ:有一个盘子没有放苹果;

这样下去的话,有一个就会考虑均分的问题,而另一个则是考虑递增的问题

具体自己动手模拟就懂了

 #include <iostream>

 using namespace std;

 int f(int m,int n)
{ if(m<) //苹果不能为负,返回0
return ;
if(m==||n==) //没有苹果,则说明所以的盘子都是0个,一种放法
return ;
return f(m-n,n)+f(m,n-);  //第一个就是所以盘子放一个,然后其他的在随便放,第二个则是减少一个盘子
} int main()
{
int t,m,n;
cin>>t;
while(t)
{
t--;
cin>>m>>n;
cout<<f(m,n)<<endl;
}
return ;
}