題解 | #放蘋果#
放蘋果
http://www.fangfengwang8.cn/practice/bfd8234bb5e84be0b493656e390bdebf
import java.util.Scanner; // 注意類名必須為 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的區(qū)別 while(in.hasNext()){ int m=in.nextInt(); int n=in.nextInt(); System.out.println(digui(m,n)); } } public static int digui(int m, int n){ if(m<0 || n<=0){ //蘋果為負(fù)數(shù)或者沒盤子不能放 return 0; } if(m==0 || n==1){ //沒蘋果或者有一個蘋果有一個盤子也是一種放法 return 1; } //一個盤子不放的方法+所有盤子都放一個蘋果的方式,可以避免重復(fù) //遞歸從1個盤子開始放起,到兩個盤子,再到三個盤子。。。 return digui(m,n-1)+digui(m-n,n); } }