剑指Offer面试题10:斐波那契数列
2018-01-19 18:52
483 查看
/** * 写一个函数,输入n,求斐波那契(Fibonacci) 数列的第n项 * @param n Fibonacci数的项数 * @return 第n项的结果 */ public static long fibonacci(int n) { // 当输入非正整数的时候返回0 if (n <= 0) { return 0; } // 输入1或者2的时候返回1 if (n == 1 || n == 2) { return 1; } // 记录前两个(第n-2个)的Fibonacci数的值 f(1)=1 long prePre = 1; // 记录前两个(第n-1个)的Fibonacci数的值 f(2)=f(1)+f(0)=1 long pre = 1; // 记录前两个(第n个)的Fibonacci数的值f(3)=f(2)+f(1)=2 long current = 2; // 求解第n个的Fibonacci数的值 for (int i = 3; i <= n ; i++) { // 求第i个的Fibonacci数的值 current = prePre + pre; // 更新记录的结果,prePre原先记录第i-2个Fibonacci数的值 // 现在记录第i-1个Fibonacci数的值 prePre = pre; // 更新记录的结果,pre原先记录第i-1个Fibonacci数的值 // 现在记录第i个Fibonacci数的值 pre = current; } // 返回所求的结果 return current; }
相关文章推荐
- 《剑指offer》面试题10:斐波那契数列(含矩阵乘法解法)
- 剑指Offer(第二版)面试题10:斐波那契数列
- 剑指offer--面试题10:斐波那契数列
- 《剑指offer》面试题9:斐波那契数列
- 剑指Offer(面试题8~10)
- 剑指Offer----面试题九:斐波那契数列
- 剑指Offer_面试题09_斐波那契数列
- 剑指Offer面试题9(java版):斐波那契数列
- 《剑指Offer》学习笔记--面试题9:斐波那契数列
- 剑指offer 面试题9 斐波那契数列
- 剑指offer面试题9 斐波那契数列
- 剑指offer面试题10:二进制中1的个数
- 剑指offer——面试题10输入一个十进制整数,统计其中二进制1的个数
- 《剑指Offer》面试题九之斐波那契数列
- 《剑指Offer》面试题10:二进制中1的个数
- 剑指offer——面试题9:斐波那契数列
- (剑指Offer)面试题9:斐波那契数列
- 面试题09_斐波那契数列及其变种详解——剑指offer系列
- 剑指Offer面试题10 & Leetcode191
- 【剑指offer】面试题10:斐波那契数列