斐波那契数列
/*斐波那契数列*/
/*
* 解法1:递归解法
*/
long long Fibonacci(unsigned int n)
{
if (n <= 0)
return 0;
if (n == 1)
return 1;
return Fibonacci(n - 1) + Fibonacci(n - 1);
}
/*
* 解法2:利用数组保存中间结果的解法
*/
long long Fibonacii(unsigned int n)
{
int result[2] = { 0,1 };
if (n < 2)
return result[n];
long long fibNMinusOne = 1;
long long fibNMinusTwo = 0;
long long fibN = 0;
for (int i = 2; i <= n; ++i)
{
fibN = fibNMinusOne + fibNMinusTwo;
fibNMinusTwo = fibNMinusOne;
fibNMinusOne = fibN;
}
return fibN;
}
/*
* 斐波那契数列的变形问题:
* 青蛙跳台阶的问题:一次青蛙一次可以跳上1级台阶,也可以跳上两级台阶。请问该青蛙跳上一个n级台阶
* 总共有多少中跳法。
* f(n) = f(n-1) + f(n-2)
*/
内容摘抄自《剑指offer》第二版
posted on 2021-11-14 18:14 xcxfury001 阅读(29) 评论(0) 收藏 举报
浙公网安备 33010602011771号