View Code of Problem 787

#include <iostream>
#include <string>
#include <cmath>		
#include <algorithm>
#include <stack>
#include <vector>
#include <set>
#include <queue>
using namespace std;
int apple(int m, int n)
{
	if (m == 0 || n == 1)//没有苹果的话就是一种,一个盘子也只有一种
		return 1;
	if (n > m)//盘子多
		return apple(m, m);
	else//盘子少
		return apple(m - n, n) + apple(m, n - 1);
}
int main()
{
	int i, j, flag, k;
	int n, m, t;
	string s;
	cin >> t;
	while (t--)
	{
		cin>>m>>n;
		cout<<apple(m, n)<<endl;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 787