您的位置:首页 > Web前端

剑指offer_9 变态跳台阶

2017-08-24 13:11 330 查看
题目描述

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

思路:

没有明确的线索,采用数学归纳法:

fn表示跳上n级台阶的方法数;

f1=1,f2=2,f3=1+1+2=4;

f4=1+3+2+1+1=8(一级一级有1种,一级两级有3种,一级三级有2种,两级两级有1种,四级的有1种,一共是8种)

….

可以发现,fn=2^(n-1);

代码:

public class Test {
public int Fibonacci(int n) {
//f1=1,f2=2,f3=4,f4=8...fn=2^(n-1)
if(n<=2){
return n;
}
int f=2;
int f3=0;
for (int i = 3; i <=n; i++) {
f3=f*2;
f=f3;
}
return f3;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: