• 跳台阶


    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法

    /*
         * 递归
         * 当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;
         * 当n = 5时,有8种跳法;.......规律类似于Fibonacci数列(0,1,1,2,3,5,8....)
         */
        
        public static int jumpFloor(int number) {
            if(number==1)
                return 1;
            else if(number==2)
                return 2;
            else return jumpFloor(number-1)+jumpFloor(number-2);
        }
        
    	//排列组合方法	
    	public static int jumpFloor(int number) {
    		int t = number / 2;
    		int sum = 0, i;
    		for (i = t; i >= 0; i--) {
    			int o = number - i * 2;
    			sum += c(i, o);
    		}
    		return sum;
    	}
    	
    	public static long c(int t, int o) {
    		long r;
    		if (t >= o)
    			r = a(t + o, t) / a(o, 0);
    		else
    			r = a(t + o, o) / a(t, 0);
    		return r;
    	}
      //从n到m-1的阶乘
    	public static long a(int n, int m) {
    		long s = 1, i;
    		for (i = n; i > m; i--) {
    			s *= i;
    		}
    		return s;
    	}
    
  • 相关阅读:
    Web后门工具WeBaCoo
    苹果内存取证工具volafox
    PlayMaker GUI的Normalized
    Arduino可穿戴教程之第一个程序——选择端口(三)
    缩略图信息提取工具vinetto
    jquery的defer
    toDo
    瀑布流案例
    js基本知识6
    js基本知识5
  • 原文地址:https://www.cnblogs.com/zhouyee/p/4480054.html
Copyright © 2020-2023  润新知