剑指Offer_编程题
跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
int jumpFloor(int number) {
if(number == 1)
return 1;
else if(number == 2)
return 2;
else{ //number > 2
//f1,f2每次记录最后两个数的值进行迭代
int f1 = 1, f2 = 2,result = 0;
for(int i=3;i<=number;i++){
result = f1+f2;
f1 = f2;
f2 = result;
}
return result;
}
}
分析:
斐波那契数列(Fibonacci sequence)应用,F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*),迭代相加得到相应上台阶数的方法.