题解 | #放苹果#
放苹果
https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf
import java.util.Scanner; // 使用递归来计算所有方案个数 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); System.out.println(fac(n,m,0)); } //由于要保证方案中苹果个数相同,是同一个方案,可以在往盘子中放苹果时个数逐渐递增,要求后面的盘子中的苹果数要大于等于上一个盘子中的苹果数 //index表示上一个盘子中放的苹果个数 public static int fac(int n,int m,int index){ if(m==0){ if(n>0){ return 0; }else if(n==0){ return 1; } } int count = 0; for(int i=index;i<=n;i++){ count+=fac(n-i,m-1,i); //表示将n-i个苹果放到m-1个盘子中 } return count; } }