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

n<=39

这么直接的问fibonacci,显然是迭代计算。递归的问题在于重复计算,而迭代则避免了这一点:递归是自顶向下,会重复产生子问题;而迭代是自底向上,一步一个脚印,没有重复的子问题。

class Solution {
public:
int Fibonacci(int n) {
if(n<=1) return n;
int a = 0; // f(0)
int b = 1; // f(1)
for(int i=2; i<=n; i++){
b = a + b;
a = b - a;
}
return b;
}
};

《剑指offer》-斐波那契数列的更多相关文章

  1. 剑指Offer 斐波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 思路: 不考虑递归 用递推的思路 AC代码: class Solution { public ...

  2. 剑指Offer——斐波那契数列

    题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39 分析: 递归解法肯定相当耗时. 因为当n=4时,程序是这样子递归运算的:Fibonacci( ...

  3. 用js刷剑指offer(斐波那契数列)

    牛客网链接 下面介绍一下什么是斐波那契数列 js代码 知道了通项公式,那代码就非常简单了 function Fibonacci(n) { // write code here let pre = 1 ...

  4. [剑指OFFER] 斐波那契数列- 跳台阶 变态跳台阶 矩形覆盖

    跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number) ...

  5. 剑指offer7: 斐波那契数列第n项(从0开始,第0项为0)

    1. 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 2. 思路和方法 斐波那契数列(Fibonacci sequen ...

  6. 剑指offer--4.斐波那契数列

    int最大范围(有符号情况下,从第0项0开始)能取到第46项1836311903,47项溢出 时间限制:1秒 空间限制:32768K 热度指数:473928 题目描述 大家都知道斐波那契数列,现在要求 ...

  7. 剑指Offer-7.斐波那契数列(C++/Java)

    题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 分析: 斐波那契数列是0,1,1,2,3,5,8,13...也就是当前 ...

  8. 剑指Offer07 斐波那契数列

    /************************************************************************* > File Name: 07_Fibona ...

  9. [剑指Offer]10-斐波那契数列(循环)-Java

    题解 使用循环,时间复杂度O(n). 相关 跳台阶:f(n)=f(n-1)+f(n-2) 变态跳台阶:f(n)=2*f(n-1) 矩形覆盖:f(n)=f(n-1)+f(n-2) 全部用循环代替递归,使 ...

  10. 剑指offer_斐波那契数列

    package solution; public class Fibonacci { /* * f(n) = f(n-1) + f(n-2) n>1 * f(0) = 0 * f(1) = 1 ...

随机推荐

  1. CentOS6.8下安装xz命令

    我们有时候会下载到.xz结尾的压缩文件,这时候需要用到xz命令来解压这类文件,而当我们想要用yum -y install xz时,又没有关于xz的安装包,因此就找到一个xz的编译安装包进行编译安装. ...

  2. Jupyter 魔术命令(magic commands)

    自动重新加载更改的模块 命令参数如下所示: %autoreload: 自动重载%aimport排除的模块之外的所有模块. %autoreload 0: 禁用自动重载 %autoreload 1: 自动 ...

  3. vue错误记录

    启动时报错如下 D:\QQFile\\FileRecv\industry_vue>cnpm run dev > vue_demo@ dev D:\QQFile\\FileRecv\indu ...

  4. Shell + crontab 实现日志压缩归档

    Shell + crontab 实现日志压缩归档 crontab # archive the ats log days. */ * * * * root /bin/>& shell #! ...

  5. Keil stm32 printf到Debug窗口

    使用JlinkV8+Keil41.在main.c输入以下代码 #include <stdio.h> #define ITM_Port8(n) (*((volatile unsigned c ...

  6. Varish 缓存

    varish 缓存 2013年06月17日,Varnish Cache 3.0.4 发布,为目前最新版本. varish是以内存作为共享容器的:内存的大小决定了它的缓存容量.相对于主要以硬盘为存储的s ...

  7. [转]NOI_Linux Arbiter使用手册

    讲述清楚,简单易懂的Arbiter使用手册 转载自 https://www.cnblogs.com/gengchen/p/7761565.html Arbiter 系统使用说明 Overview Ar ...

  8. mysql 案例 ~ pt-xtrabackup 使用

    一 简介:学习innobackup工具使用 二 功能: 备份全库/单库/单表 三 常用命令  一 全库  目的 每天日常备份  备份 innobackupex --defaults-file=/etc ...

  9. Mac下的开发工具

    1.webstrom 淘宝上2块钱就能买一个 WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑 ...

  10. 一篇不错的CUDA入门

    鉴于自己的毕设需要使用GPU CUDA这项技术,想找一本入门的教材,选择了Jason Sanders等所著的书<CUDA By Example an Introduction to Genera ...