题目:

大家都知道斐波那契数列,现在要求输入一个整数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. 搭建webssh和nginx反向代理

    0.前置条件,centos主机安装了python3和nginx   1.安装webssh pip3 install webssh   2.添加自定义服务 systemctl cat webssh # ...

  2. ASP.NET Core Web API通过中间件或UseExceptionHandler异常处理方法

    UseExceptionHandler app.UseExceptionHandler(configure => { configure.Run(async context => { va ...

  3. 全新BPMN常用图形标识一览表

    BPMN符号与BPMN的关系 BPMN,即业务流程建模与标记(手法),表达此类手法的即是业务流程模型示意图.业务流程示意图是由一系列的元素符号构成.作为BPMN的基础,这些符号将业务流程建模简单化.图 ...

  4. Qt中资源文件qrc中的路径访问

    首先先看一下我们的qrc文件目录结构:  在文件系统中的目录结构是这样的:   请务必注意这边的前缀(按照网友推荐,大部分项目前缀都是只写一个"/"):  接下来进入正题,我们来分 ...

  5. swagger2入门

    1.引入jar包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox- ...

  6. HTML实战:个人信息登记表

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

  7. openSUSE 播放使用VLC播放视频

    openSUSE 使用VLC播放视频 linux视频播放 为什么 通常我们在安装号vlc后,由于版权的原因,是无法获取视频的解码器的.我们需要下载第三方的解码器帮助我们进行解码. 过程如下: 添加pa ...

  8. mark一下,python2.7版本不能直接print中文字符串,3.0以上的版本是可以的

    mark一下,python2.7版本不能直接print中文字符串,3.0以上的版本是可以的

  9. python机器学习——KNN(K近邻算法)

    背景与原理: KNN算法其实是逻辑最简单的分类算法--我们认为一个数据的类型是由与其最接近的数据决定的,而"接近"实际上就是我们度量两个数据点之间的距离,如果我们把一组数据看做一个 ...

  10. vc++生成随机数

    在VC++提供的函数为rand(),返回一个0至65535之间的随机数,若想产生0至MAX_NUM之间的随机数,可用rand()%MAX_NUM,即产生小于MAX_NUM的随机数 for (int i ...