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

算法-递推

一.概念

        递推最通俗的理解就是数列,递推和数列的关系就好比算法和数据结构的关系,数列有点像数据结构中的线性表(可以是顺序表,也可以是链表,一般情况下是顺序表),而递推就是一个循环或者迭代的枚举过程。

二.递推例子

1.斐波那契数列

        拿到这个题目,我们首先来看题目范围,最多不超过30,那是因为斐波那契数的增长速度很快,是指数级别的。所以如果n很大,就会超过c语言中32位整型的范围。这是一个最基础的递推题,递推公式都已经告诉你了,我们要做的就是利用一个循环来实现这个递推。 

我们只需要用一个F[31]数组,初始化好F[0]和F[1],然后按照给定的公式循环计算就可以了。写成伪代码像这样:


int fib(int n){int i;//(1)int F[31]={0,1};//(2)for(i = 2; i <= n; ++i){    //(3)Fi]= F[i-1]+F[i-2];//(4)}return F[n];//(5)
}

(1)首先定义一个循环变量;

(2)再定义一个数组记录斐波那契数列的第n项,并且初始化第0项和第1项。·

(3)然后一个 for循环,从第2项开始;

(4)利用递推公式逐步计算每—项的值;·

(5)最后返回第n项即可。

2.泰波纳契数列

 

http://www.lryc.cn/news/594271.html

相关文章:

  • C++ 并发 future, promise和async
  • 设计模式笔记(1)简单工厂模式
  • 基于单片机的自动条幅悬挂机
  • Linux文件系统底层原理:从磁盘物理结构到LBA寻址
  • MySQL锁(一) 概述与分类
  • springboot03-一个简单的SSMP框架
  • MySQL详解三
  • 详解Mysql HashJoin加速原理
  • 乐观锁实现原理笔记
  • LINUX入门(二)QT的安装及运行环境搭建
  • 虚拟机动态IP配置
  • HTTP1-HTTP2-HTTP3简要概述
  • Qt的安装和环境配置
  • Slack介绍(一款专注于企业协作的沟通平台,旨在通过整合聊天、文件共享、任务管理及第三方工具集成,提升团队的工作效率)
  • 【智能协同云图库】第一期:用户管理接口设计与功能实现
  • 统计与大数据分析和数字经济:专业选择指南
  • 数位 dp
  • kafka生产端和消费端的僵尸实例以及解决办法
  • NumPy 库的基本运用
  • 服务器上的文件复制到本地 Windows 系统
  • 语音识别技术:从声音到文字的 AI 魔法
  • 【Linux】权限详解 权限本质、权限属性、su、sudo提权、chmod\chown\chgrp、文件类别
  • 【软件测试】使用ADB命令抓取安卓app日志信息(含指定应用)
  • imx6ull-系统移植篇11——U-Boot 移植(下)
  • 第三章-提示词-中级:进阶技巧与实践指南(12/36)
  • #SVA语法滴水穿石# (014)关于链式蕴含的陷阱
  • 【Linux】1. Linux操作系统介绍及环境搭建
  • golang踩坑之url不会decode问题
  • 深度学习图像分类数据集—八种贝类海鲜食物分类
  • 秒赤Haproxy配置算法