zoukankan      html  css  js  c++  java
  • 跳台阶

    一只青蛙一次可以跳上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;
    	}
    
  • 相关阅读:
    Windows XP中万能断点
    c#运算符 ?
    转神秘的程序员
    经典解决“线程间操作无效
    文件上传
    dowload.aspx
    mail
    js 正则
    新年快乐
    DataTable Compute
  • 原文地址:https://www.cnblogs.com/zhouyee/p/4480054.html
Copyright © 2011-2022 走看看