斐波那契数列
两种思路
- 迭代
class Solution {
int start1=1,start2=1,t=0;
public int numWays(int n)
{
for(int i=1,i<=n;i++)
{
t=start1+start2;
start1=start2
start2=t;
}
}
}
- 递归
public int fib(int n)
{
if(n==0)
return 0;
else if(n==1||n==2)
return 1;
else
return fib(n-1)+fib(n-2);
}
青蛙跳台阶
话不多说,上图分析过程:
青蛙要从第0层跳到第0层的时候,为0
青蛙要从第0层跳到第1层的时候,为1,因为只能从第0层跳一步到达第1层
那么青蛙要到达第n层的时候,可以有两种方式:
-
从第n-1层跳一步
-
从第n-2层跳两步
按照排列组合中的知识,此过程为一个分类过程:
即f(n)=f(n-1)+f(n-2),这里f(n)表示从第0层到大第n层的走法
可以看到求解过程其实就是斐波那契数列