是一个数学题目:应用了递归的思想。f(m,n) m为苹果数,n为盘子数。如果n>m f(m,n)=f(m,m) 因为一定有n-m个盘子是空的。如果n<=m,f(m,n)=f(m-n,n)+f(m,n-1)。分成了两种情况,每一个盘子都有苹果;至少有一个盘子没有苹果。利用这个递推公式就可以求出答案。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int apple = in.nextInt();
int plate = in.nextInt();
System.out.println(method(apple, plate));
}
}
public static int method(int apple, int plate) {
if (plate == 0) return 0;
if (apple == 0 || plate == 1) {
return 1;
}
if (plate > apple)
plate = apple;
return method(apple - plate, plate) + method(apple, plate - 1);
}
}