算法训练 未名湖边的烦恼
        【摘要】   
 
   
  
    问题描述   每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。    每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同...
    
    
    
    
     问题描述 
   
 
   
     每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 
    
每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)
 
   每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)
     输入格式 
   
 
   
     两个整数,表示m和n 
   
 
   
     输出格式 
   
 
   
     一个整数,表示队伍的排法的方案数。 
   
 
   
     样例输入 
   
 
   
     3 2 
   
 
   
     样例输出 
   
 
   
     5 
   
 
   
     数据规模和约定 
   
 
   
     m,n∈[0,18] 
    
问题分析
 
   问题分析
       
        - 
         
          
         
         
          
           import java.util.Scanner;
          
         
 
        - 
         
          
         
         
           
          
         
 
        - 
         
          
         
         
          
           public class Main{
          
         
 
        - 
         
          
         
         
          	//未名湖的烦恼
          
         
 
        - 
         
          
         
         
          	public static void main(String[] args) {		
          
         
 
        - 
         
          
         
         
          
            Scanner sc=new Scanner(System.in);
          
         
 
        - 
         
          
         
         
           int m=sc.nextInt();
          
         
 
        - 
         
          
         
         
           int n=sc.nextInt();
          
         
 
        - 
         
          
         
         
          
            System.out.println(f(m,n));
          
         
 
        - 
         
          
         
         
          
           	}
          
         
 
        - 
         
          
         
         
           
          
         
 
        - 
         
          
         
         
          	public static int f(int m, int n) {		
          
         
 
        - 
         
          
         
         
          		if(m<n) return 0;
          
         
 
        - 
         
          
         
         
          		if(n==0) return 1;
          
         
 
        - 
         
          
         
         
          		return f(m-1,n)+f(m,n-1);
          
         
 
        - 
         
          
         
         
          
           	}
          
         
 
        - 
         
          
         
         
          
           }
          
         
 
       
       
     
 
    文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/76091324
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)