首页 > 分享 > 第T题 详解放苹果(递归) =========== 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

第T题 详解放苹果(递归) =========== 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

最新推荐文章于 2023-02-23 14:56:00 发布

lioncatch 于 2018-07-18 22:14:10 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

Input

第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

Output

对输入的每组数据M和N,用一行输出相应的K。

Sample Input

1

7 3

Sample Output

8

递归写就行了

7个苹果放三个盘子

分两种

7 0 0     5 1 1     7 0     4 0 0

1 6 0     4 2 1==1 6     3 1 0

2 5 0     3 2 2==2 5     2 1 1

3 4 0     3 3 1     3 4     2 2 0

第一种是有0的那么第一组就和7放 2 一样了,7放2又分为有0组和无0组

            继续直到变成7放1,就只有一种了返回1

第二种是无0的那么第二组全减去1之后个数也是不会变的,就变成了7-3放3了

            于是4放3又可以分成有0组和无0组,直到变成1放3,和1放1一样返回1

JAVA代码体现:

import java.util.Scanner;

public class Main {

public static void main(String []ages)

{

Scanner sc=new Scanner(System.in);

int n=sc.nextInt();

while(n--!=0)

{

int a=sc.nextInt();

int b=sc.nextInt();

System.out.println(count(a,b));

}

}

static int count(int apple,int plant)

{

if(apple==0||plant==1)

return 1;

if(plant>apple)

{

return count(apple,apple);

}

else

{

return (count(apple,plant-1)+count(apple-plant,plant));

}

}

}

相关知识

函数
算法很美 笔记 2.递归与算法分析
【动态规划】摆花
盘子装饰物
新人教小学五年级数学下册第4单元分数的意义和性质《分数与除法(1)》教学课件
小诚有n个连续的花盆和k种不同的花,每种花都有无穷个。 他希望每朵花和相邻花的颜色都不相同,请问一共有多少种不同的方案?由于答案过大,输出对10 9 +7取模后的结果。 输入描述 第一行一个正整数T(1≤T≤1000)表示测试组数。 接下来T行,每行两个正整数n(1≤n≤1000),k(2≤k≤1000),表示花盆的数量和花的种类。 输出描述 T行,每行一个数表示方案数对10000000007取模后的结果。使用c++进行代码编撰
【DP】花店橱窗布置 (ssl 1626/luogu 1854)
算法的艺术
牛客网的国庆自闭7天乐:一些好题
2018 年 5月 随笔档案

网址: 第T题 详解放苹果(递归) =========== 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 https://m.huajiangbk.com/newsview1294236.html

所属分类:花卉
上一篇: 【苹果iPhone 6】最新报价
下一篇: 在KVM中运行苹果操作系统