斐波那契数列应用

题目描述:

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

分析:根据斐波那契数列定义可以使用递归  Fibonacci(int n)=Fibonacci(int n-1)+Fibonacci(int n-2)

Fibonacci(0)==0

Fibonacci(1)==1

n<=39

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

分析:斐波那契数列的应用,只能从n-1个台阶或者n-2个台阶调到第n个台阶,且剩下一种跳法,从n-2个台阶开始跳,只能挑两步,跳一步包含在从n-1的台阶跳的情况里

public int JumpFloor(int target) {
		 	if(target==1){
		 		return 1;
		 	}
		 	if(target==2){
		 		return 2;
		 	}
		 	return (JumpFloor(target-1)+2+JumpFloor(target-2)+1);
	    }

题目描述

 public int JumpFloorII(int target) {
	        return (int)Math.pow(2,target-1);
	    }

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

f(n)=f(n-1)+f(n-2)+f(n-3)+.....+f(1)         1式

f(n-1)=f(n-2)+f(n-3)+f(n-4)+.....+f(1)      2式

1式-2式可得  f(n)=2*f(n-1)

f(1)=1

是一个2为公比的等比数列an=a1*q^(n-1)

猜你喜欢

转载自blog.csdn.net/wangdongli_1993/article/details/81106818