基于jsp网站开发与实现,建设部网站安全考核证书查询,网站前期推广,2345网址大全17描述
把 M 个同样的苹果放在 N 个同样的盘子里#xff0c;允许有的盘子空着不放#xff0c;问共有多少种不同的分法#xff1f; 注意#xff1a;5、1、1 和 1、5、1 是同一种分法#xff0c;即顺序无关。
输入描述#xff1a;
输入包含多组数据。 每组数据包含两个正整…
描述
把 M 个同样的苹果放在 N 个同样的盘子里允许有的盘子空着不放问共有多少种不同的分法 注意5、1、1 和 1、5、1 是同一种分法即顺序无关。
输入描述
输入包含多组数据。 每组数据包含两个正整数 m和n1≤m, n≤20。
输出描述
对应每组数据输出一个整数k表示有k种不同的分法。
示例1
输入
7 3
输出
8 代码如下
import java.util.Scanner;/** 放苹果把M个同样的苹果放在N个同样的盘子里允许有的盘子空着不放问共有多少种不同的分法* 用K表示511和151 是同一种分法。* 递归求解* 边界情况是苹果数量为1或盘子数量为1或苹果数量为0* 当苹果数量m盘子数量n时有两种可能* 有一个盘子空出* 没有盘子空出* 当苹果数量m盘子数量n时* 有盘子空出*/
public class PutApple {public class PutApple {public static void main(String[] args) {Scanner scanner new Scanner(System.in);while (scanner.hasNext()) {int m scanner.nextInt(); //苹果的数量int n scanner.nextInt(); //盘子的数量System.out.println(putApple(m, n));}}public static int putApple(int m,int n) {if (m 0||m 1||n 1) { //判断边界//苹果个数为0时只有一种情况//苹果个数为1时只有一种情况//只有一个盘子时只有一种情况return 1;}else if (mn) { //苹果的数量 盘子的数量//1、有一个盘子为空时问题就转化成了将m个苹果放在n-1个盘子问题//2、盘子都不为空问题就转化成将m-n个苹果放在n个盘子上return putApple(m, n-1)putApple(m-n, n);}else if (mn) { //苹果的数量 小于盘子的数量//1、有一个盘子为空时问题就转化成了将m个苹果放在n-1个盘子问题return putApple(m, n-1);}return -1;}
}}