描述 | |
---|---|
知识点 | 循环 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入两个int整数 |
输出 | 输出结果,int型 |
样例输入 | 7 3 |
样例输出 | 8 |
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt();
int n = scanner.nextInt();
scanner.close();
if (m < 0 || m > 10 || n < 1 || n > 10 || n > m)
System.out.print("-1");
else
System.out.println(count(m, n));
}
/*
* 将m个苹果放入n个盘子中,有两种方法:
* 1、至少有一个盘子不放苹果 f(m, n-1)
* 2、每个盘子都至少放一个 f(m-n.n)
* 递归表达式:f(m,n) = f(m-n,n) + f(m,n-1)
*
*/
public static int count(int m, int n) {
if(m < 0)
return 0;
if (m == 0 || n == 1) {
return 1;
} else {
return count(m, n - 1) + count(m - n, n);
}
}
}