题解 | #放苹果#
放苹果
https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf
import java.util.Scanner;
import java.util.*;
//Java递归
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
int b = in.nextInt();
int sum = out(a,b);
System.out.println(sum);
}
}
public static int out(int a,int b){
if( a==0 || a==1 || b==1){
return 1; //如果当前的苹果只有一个或是零个,则只有一种情况(因为没有顺序之分),
}
if(a<b){
return out(a,a); //多余的盘子没有分配到的可能
}
else{
return out(a,b-1)+out(a-b,b); //当排除了边界条件之后,剩下的就只有两重情况,
//即当前盘是否要放苹果,放苹果则所有的盘都有苹果,集体减一不影响排布
//不放苹果则是直接少一个盘
}
}
}
