当前位置: 首页 > article >正文

算法:斐波那契数列

题目描述:

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

问题分析:

可以肯定的是这一题通过递归的方式是肯定能做出来,但是这样会有一个很大的问题,那就是递归大量的重复计算会导致内存溢出。另外可以使用迭代法,用 fn1 和 fn2 保存计算过程中的结果,并复用起来。下面我会把两个方法示例代码都给出来并给出两个方法的运行时间对比。

示例代码:

采用迭代法:

int Fibonacci(int number) {
    if (number <= 0) {
        return 0;
    }
    if (number == 1 || number == 2) {
        return 1;
    }
    int first = 1, second = 1, third = 0;
    for (int i = 3; i <= number; i++) {
        third = first + second;
        first = second;
        second = third;
    }
    return third;
}

采用递归:

public int Fibonacci(int n) {
    if (n <= 0) {
        return 0;
    }
    if (n == 1||n==2) {
        return 1;
    }

    return Fibonacci(n - 2) + Fibonacci(n - 1);
}

http://www.kler.cn/a/316326.html

相关文章:

  • 【再谈设计模式】抽象工厂模式~对象创建的统筹者
  • JavaScript高级程序设计基础(四)
  • IEC60870-5-104 协议源码架构详细分析
  • 《DiffusionDet: Diffusion Model for Object Detection》ICCV2023
  • 小面馆叫号取餐流程 佳易王面馆米线店点餐叫号管理系统操作教程
  • 以往运维岗本人面试真题分享
  • 什么是动态数据脱敏?
  • 基于单片机的粮仓环境检测系统设计
  • 鸿蒙应用生态构建的核心目标
  • 一些线上常用排查问题的命令
  • IT行业中的技术趋势与未来展望
  • Nginx-HTTP和反向代理web服务器
  • Linux实用命令 lsof命令
  • 昇思量子计算系列教程-Grover搜索算法
  • C++学习笔记(37)
  • AMQP-CPP二次封装
  • Llama 3.1 Omni:颠覆性的文本与语音双输出模型
  • Linux下文件下载中文乱码问题
  • C++单例模式代码实现与分析
  • Spring Boot实用小技巧5 - 第527篇
  • Leetcode面试经典150题-198.打家劫舍
  • 【Git使用】删除Github仓库中的指定文件/文件夹
  • Linux通过yum安装Docker
  • 5G 扬帆新质跃,技术蝶变开新篇-第七届“绽放杯”5G应用征集大赛 5G应用融合技术专题赛圆满收官
  • mysql性能优化-索引优化
  • 一天认识一个硬件之内存条