题解 | #放苹果#

放苹果

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);
          }
      }
}
全部评论

相关推荐

青春运维少年不会梦到...:实习大王
点赞 评论 收藏
分享
在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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