#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.