题目:

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1),n≤39;

示例1

输入:

4

返回值:

3

代码:

方法一:递归

public class Solution {
public int Fibonacci(int n) {
if(n==0){
return 0;
}
if(n==1){
return 1;
}
return Fibonacci(n-1)+Fibonacci(n-2);
}
}

运行时间:851ms

方法二:

public class Solution {
public int Fibonacci(int n) {
int[] arr = {0,1};
if(n<2){
return arr[n];
}
int frist = 0;
int second =1;
int total = 0;
for(int i= 2;i<=n;i++){
total = frist + second;
frist = second;
second = total;
}
return total;
}
}

运行时间:11ms

总结:使用递归确实会增加应用程序的负担,要慎重使用;有时使用书写相对复杂的循环效果可能会更好!

每日一道算法题——斐波那契数列Fibonacci的更多相关文章

  1. python实现斐波那契数列(Fibonacci sequence)

    使用Python实现斐波那契数列(Fibonacci sequence) 斐波那契数列形如 1,1,2,3,5,8,13,等等.也就是说,下一个值是序列中前两个值之和.写一个函数,给定N,返回第N个斐 ...

  2. 斐波那契数列(Fibonacci) iOS

    斐波那契数列Fibonacci 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2 ...

  3. 使用一位数组解决 1 1 2 3 5 8 13 数列问题 斐波纳契数列 Fibonacci

    斐波纳契数列 Fibonacci 输出这个数列的前20个数是什么? 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 使用数组实现输出数列的前30 ...

  4. [BSGS算法]纯水斐波那契数列

    学弟在OJ上加了道"非水斐波那契数列",求斐波那契第n项对1,000,000,007取模的值,n<=10^15,随便水过后我决定加一道升级版,说是升级版,其实也没什么变化,只 ...

  5. 剑指offer-第二章算法之斐波拉契数列(青蛙跳台阶)

    递归与循环 递归:在一个函数的内部调用这个函数. 本质:把一个问题分解为两个,或者多个小问题(多个小问题相互重叠的部分,会存在重复的计算) 优点:简洁,易于实现. 缺点:时间和空间消耗严重,如果递归调 ...

  6. Reverse反转算法+斐波那契数列递归+Reverse反转单链表算法--C++实现

    Reverse反转算法 #include <iostream> using namespace std; //交换的函数 void replaced(int &a,int & ...

  7. javascript:算法之斐波那契数列

    一 //1,1,2,3,5,8,13,21这个数列 斐波那契 数列(肥波哪弃) //得到第9项是几? /*******************************111111111递归的思想*** ...

  8. PHP算法之斐波那契数列(递归)

    /*斐波那契数列 源代码分析 f(x) = 1 ; 当 x < 2 ; f(x) = f(x-1)+f(x-2); 当 x >= 2 ; 通项式为:fn ={((1+根号5)/2)^n-( ...

  9. NOIP模拟题 斐波那契数列

    题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...

  10. Python算法_斐波那契数列(10)

    写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0,   F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 ...

随机推荐

  1. Div的几种选择器

    Div 是一个html标签,一个块级元素(单独显示一行),单独使用没有意义,需要结合CSS来使用,主要用于页面的布局. div选择器: 1.元素选择器: 1 <style> 2 div{ ...

  2. mybatis -plus基础

  3. SSH反向隧道实现内网穿透

    1.客户端配置 /home/tsingyundev/zyy bind209.sh内容 ssh -fCNL *:1234:localhost:10022 localhost ssh209.sh内容 ss ...

  4. 【ESP32学习】CMake学习

    在之前的博客中提到,ESP-IDF采用的是CMake来构建项目,因此需要学习一下CMake,以对ESP32的开发有更好的把握 参考: Windows下CMake安装教程 从零开始详细介绍CMake C ...

  5. XJTUOJ #1323. [L2-2]三倍满世界

    题目 https://oj.xjtuicpc.com/problem/1323 思路 题目说明有点绕. 然后我们仔细观察一下,这个东西很显然是一个天然的树形结构. 我们可以把一个空间(或者一个数)当成 ...

  6. sql 加工后--小文件解决方案

    10.24.8.5 # 切换用户 su - hive # 查看表文件 [hive@hadoop-0001 ~]$ hdfs dfs -ls /user/hive/warehouse/bibase.db ...

  7. Visual Studio 2019注册码

    最近在学习Visual Studio,但是晕斗士(筛子系统)提示需要注册码,否则只能试用30天,由于是学习购买就没必要了,找Google找到了一下两段注册码. 目前测试了专业版已经注册成功. Visu ...

  8. 异步按照同步顺序执行的function

    function  step1 (callback) {     console.log(111111)     callback.call() } function  step2 (callback ...

  9. usbip:(一)初识

    USB/IP 总结   一.概要: USB/IP项目的目标是为用户提供通过网络远程访问usb设备的能力.在用户看来,访问usb设备和访问插入到本地电脑的设备没什么区别,该项目是开源的,可以用过适当的配 ...

  10. vue + antV G6 实现流程图完整代码 (antv G6 流程图)

    效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...