View Code of Problem 787

#include<stdio.h>
#include<string.h>
#include<math.h>
int f(int m,int n)
{
	if(n>m)  return f(m,m);//盘子多水果少
	if(m==1||n==1) return 1;//一个盘子或一个水果 
	if(m==0) return 1;//没有水果 
	return f(m,n-1)+f(m-n,n);//每次空一个盘子的放法+每次不空盘子
}
int main()
{
	int t,i,j,k;
	scanf("%d",&t);
	while(t--)
	{
		int m,n,count;
		scanf("%d%d",&m,&n);
		count=f(m,n);
		printf("%d\n",count);
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 787