题解 | #放苹果#

放苹果

http://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf

import java.util.Scanner;
public class Main {
      public static void main(String[] args){
          Scanner sc = new Scanner(System.in);
          //输入两个正整数
          while(sc.hasNextInt()){
              int m =sc.nextInt();//m 苹果数量
              int n = sc.nextInt();//n 盘子数量
              System.out.println(count(m,n));
          }
      }
    public static int count(int m,int n){
          //递归解法 ,递归结束条件,当只有1个盘子 或者0个苹果时,只有一种方法
          if(m==0 || n==1){
              return 1;
          }else if(m<n){
              //当苹果的数量小于盘子的数量时,必定有盘子空着,那方法就是和m个苹果放m个盘子 ,空盘子不管
              return count(m,m);
          }else{
              //当苹果的数量大于或等于盘子的数量时,那每个盘子至少有一个,最多剩下m-n个苹果又继续放n个盘子
              //或者至少有1个盘子是空着,那就是m个苹果放在n-1个盘子上
              return count(m,n-1)+count(m-n,n);
          }
      }
}
全部评论

相关推荐

自来熟的放鸽子能手面...:这个不一定,找hr跟进一下
点赞 评论 收藏
分享
菠落蜜:这个是系统自动投的,不是hr主动打招呼。更抽象的还有ai回复
我的秋招日记
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务