您的位置:首页 > Web前端

剑指offer(斐波那契数列)

2018-04-03 16:12 302 查看
第一种是递归函数,但是递归函数有很严重的效率问题,所以采用循环算法package jichu;

public class Feibo {
public static void main(String args[]){
int n=6;
int[] r={0,1};
if(n==1){
System.out.println(r[1]);
}
if(n==0){
System.out.println(r[0]);
}
int f0=0;
int f1=1;
int fn=0;
for(int i=2;i<=n;i++){
fn=f0+f1;
f0=f1;
f1=fn;
}
System.out.println(fn);
}
}
青蛙跳台阶问题:
一只青蛙一次可以跳1级台阶,也可以跳两级台阶,求该青蛙跳跳上一个n级台阶共有多少种跳法?

首先考虑n等于0、1、2时的特殊情况,f(0) = 0   f(1) = 1 f(2) = 2            其次,当n=3时,青蛙的第一跳有两种情况:跳1级台阶或者跳两级台阶            假如跳一级,那么 剩下的两级台阶就是f(2);假如跳两级,那么剩下的一级台阶就是f(1),因此f(3)=f(2)+f(1)                当n = 4时,f(4) = f(3) +f(2),以此类推...........可以联想到Fibonacci数列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: