剑指offer_递归与循环---斐波那契数列

简介: 剑指offer_递归与循环---斐波那契数列

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

n<=39

解题思路

1,斐波那契数列除了第一项和第二项是1,其余都为前两项的和

2,使用递归方式。

代码实现

/**
 * 
 */
package 递归和循环;
/**
 * 第一个为1,第二个为2,第三项开始,为前两项的和 1,1,2,3,5,8
 * 
 * @author 田茂林
 * @data 2017年8月23日 上午11:11:24
 */
public class Fibonacci {
    public int fibonacci(int n) { // 使用迭代的方式,降低时间复杂度
        if (n == 1) {
            return 1;
        }
        if (n == 2) {
            return 1;
        }
        int num = 0;
        if (n > 2 && n <= 39) {
             num = fibonacci(n - 1) + fibonacci(n - 2);
        }
        return num;
    }
}


相关文章
|
1月前
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
16 1
|
1月前
函数递归详解----跳台阶、斐波那契数列、汉诺塔问题
递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。递归中的递就是递推的意思,归就是回归的意思。
|
机器学习/深度学习 存储 设计模式
从斐波那契数列到递归
大家好,我是王有志。今天我们要通过经典数学问【题斐波那契数列】来学习非常重要的编程技巧:递归。
109 1
从斐波那契数列到递归
|
10月前
【递归进阶练习】全排列
【递归进阶练习】全排列
37 0
|
机器学习/深度学习
剑指offer_递归与循环---变态跳台阶
剑指offer_递归与循环---变态跳台阶
48 0
剑指offer_递归与循环---跳台阶
剑指offer_递归与循环---跳台阶
43 0
剑指offer_递归与循环---矩形覆盖
剑指offer_递归与循环---矩形覆盖
63 0
剑指offer_递归与循环---扑克牌顺子
剑指offer_递归与循环---扑克牌顺子
36 0
初学算法之---递归汉诺塔
初学算法之---递归汉诺塔
初学算法之递归---爬楼梯
初学算法之递归---爬楼梯