递归算法之排队购票问题(未名湖边的烦恼)java实现

动物园开张,每张票50元,有m人拿50元,有n人拿的是100元。求售票处不至于出现找不开钱的情况的排队方式的种数。
(m,n为键盘输入或题目给出;m,n∈[0,18];售票处最开始并没有零钱;拿着同样钞票的人互换位置为同一种排队方式)

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner=new Scanner(System.in);
        int m=scanner.nextInt();//拿50元的人数
        int n=scanner.nextInt();//拿100元的人数
        System.out.println(jisuan(m,n));
    }
    public static int jisuan(int m,int n){
        if(n==0) return 1;
        if(mreturn 0;
        //当最后一人拿的是50元时,应有jisuan(m-1, n);
        //当最后一人拿的是100元时,应有jisuan(m, n-1)
        else return jisuan(m-1, n)+jisuan(m, n-1);
    }
}

未名湖边的烦恼一题与此题解法相同.

你可能感兴趣的:(递归算法,算法,java)