码迷,mamicode.com
首页 > 其他好文 > 详细

跳台阶

时间:2015-05-05 21:40:41      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

一只青蛙一次可以跳上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;
	}

 

跳台阶

标签:

原文地址:http://www.cnblogs.com/zhouyee/p/4480054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!