题目描述
题目描述
把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
数据范围:0<=m<=10,1<=n<=10。
本题含有多组样例输入。
输入描述:
输入两个int整数
输出描述:
输出结果,int型
import java.util.*;
public class Main
{
//1、有至少一个盘子空着,即相当于f(m,n) = f(m,n-1);
//2、所有盘子都有苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即f(m,n) = f(m-n,n).
//而总的放苹果的放法数目等于两者的和,即 f(m,n) =f(m,n-1)+f(m-n,n)
public static int calCount(int m,int n)
{
if(n == 1 || m == 0)
{
return 1;
}
else if(n > m)
{
return calCount(m,m);
}
else
{
return calCount(m,n -1) + calCount(m - n,n);
}
}
public static void main(String []args)
{
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt())
{
int m = sc.nextInt();
int n =sc.nextInt();
System.out.println(calCount(m,n));
}
}
}