题解 | #放苹果#
放苹果
https://www.nowcoder.com/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 的区别
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){ //苹果为负数或者没盘子不能放
return 0;
}
if(m==0 || n==1){ //没苹果或者有一个苹果有一个盘子也是一种放法
return 1;
}
//一个盘子不放的方法+所有盘子都放一个苹果的方式,可以避免重复
//递归从1个盘子开始放起,到两个盘子,再到三个盘子。。。
return digui(m,n-1)+digui(m-n,n);
}
}
查看8道真题和解析
360集团公司福利 405人发布