所谓的斐波纳契数列是指:
- 前2个数是 0 和 1 。
- 第 i 个数是第 i-1 个数和第i-2 个数的和。
斐波纳契数列的前10个数字是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
class Solution {
/**
* @param n: an integer
* @return an integer f(n)
*/
public int fibonacci(int n) {
// write your code here
if ( n == 1 ) {
return 0;
} else if ( n == 2 || n == 3 ) {
return 1;
}
int pre = 1; //保存前一个数
int next = 1; //后一个
int i = 4;
int sum = 0;
while (i <= n) {
sum = pre + next; //求得第三个数
pre = next; //将后一个的值付给前一个
next = sum;
i++;
}
return sum;
}
/**
*递归算法
*
*/
int fibonacci2(int n) {
// write your code here
if ( n == 1 ) {
return 0;
} else if ( n == 2 || n == 3 ) {
return 1;
}
/*else {
return fibonacci2(n-1) + fibonacci2(n-2);
}
};
}