餐饮公司网站模板,提供服务好的网站制作,各类网站,做电影下载网站需要什么描述 把M个同样的苹果放在N个同样的盘子里#xff0c;允许有的盘子空着不放#xff0c;问共有多少种不同的分法#xff1f;#xff08;用K表示#xff09;5#xff0c;1#xff0c;1和1#xff0c;5#xff0c;1 是同一种分法。 输入 第一行是测试数据的数目t…描述 把M个同样的苹果放在N个同样的盘子里允许有的盘子空着不放问共有多少种不同的分法用K表示511和151 是同一种分法。 输入 第一行是测试数据的数目t0 t 20。以下每行均包含二个整数M和N以空格分开。1MN10。 输出 对输入的每组数据M和N用一行输出相应的K。 样例输入 1 7 3 样例输出 8
分析
f(m,n)表示不同的放法 有篮子空 f(m,n)f(m,n-1)//m n 一个篮子都不空 f(m,n)f(m-n,n)//mn 每个盘子里面放一个之后剩下多的放到n个盘子里面的可能情况 故 f(m,n) f(m,n-1) f(m-n,n) 边界条件 n1 1 m1 1 m n f(m,m)
#include iostream
using namespace std;
int f(int m,int n){if(m1||n1) return 1;else if(mn) return f(m,m);else return f(m,n-1)f(m-n,n);
}
int main(){int n,m,a;cina;while(a--){cinmn;coutf(m,n)endl;}
}