题解 | #放苹果#
放苹果
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); //当排除了边界条件之后,剩下的就只有两重情况, //即当前盘是否要放苹果,放苹果则所有的盘都有苹果,集体减一不影响排布 //不放苹果则是直接少一个盘 } } }