数据结构考研复习 | Fibonacci数列的递归、数组、迭代(循环)实现及其时间复杂度
#include <stdio.h>
#include <iostream>int fibonacci_recurrence(int n) //递归实现
{if (n == 0 or n == 1)return 1;else if(n > 1){return fibonacci_recurrence(n-1)+fibonacci_recurrence(n-2);}elseprintf("error");
}//递归实现的时间复杂度是O(2^n)int fibonacci_array(int n) //数组实现
{//1,1,2,3,5,8,13,......if (n == 0 or n == 1)return 1;else if (n > 1){int nums[n];nums[0] = 1;nums[1] = 1;for(int i = 2; i<=n; i++){nums[i] = nums[i-1] + nums[i-2];}return nums[n];}
}//数组实现的时间复杂度是O(n)int fibonacci_iteration(int n) //迭代(循环)实现
{if (n == 0 or n == 1)return 1;else{int num1 = 1;int num2 = 1;int res;while(n > 1){res = num1 + num2;num2 = num1;num1 = res;n--;}return res;}
}//迭代实现的时间复杂度是O(n)int main()
{int num;printf("input num:\n");scanf("%d",&num);if(num<0)printf("error");else{printf("递归实现:\n");printf("%d\n",fibonacci_recurrence(num));printf("数组实现:\n");printf("%d\n",fibonacci_array(num));printf("迭代(循环)实现:\n");printf("%d\n",fibonacci_iteration(num));}system("pause");return 0;
}
数据结构考研复习 | Fibonacci数列的递归、数组、迭代(循环)实现及其时间复杂度相关推荐
- 2019数据结构考研复习指导习题代码(王道论坛)
2019数据结构考研复习指导习题代码(王道论坛) 1.从顺序表删除具有最小值的元素(假设唯一)并由函数返回被删除元素的值.空出的位置由最后一个元素补充,若顺序表为空则显示出错信息并退出运行. bool ...
- Python输出斐波那契数列【递归、迭代】
Python输出斐波那契数列[递归.迭代] 首先 斐波那契数列的定义是什么? 斐波那契数列指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波那契数列以如下被以递推的方 ...
- C语言:Fibonacci数列的递归解法和非递归解法
求Fibonacci数列的第n项(注意,是当n很小时) Fibonacci数列: F(n)=F(n-1)+F(n-2) 1 1 2 3 5 8 13 21 -- 递归解法: #include<s ...
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 谓Fib ...
- 数据结构考研复习笔记
数据结构(清华出版的) (就是那本经典的,作者是严老师) 记录考研学习过程,不管写的咋样,就是硬写,就是坚持写. 先说一下我要准备的考试大纲,纲举目张,抓本质. 看着挺吓人的,但是都是纸老虎" ...
- 2022年王道数据结构考研复习指导习题代码(栈和队列)
3.1栈 1.写出一个算法,判定所给的操作序列是否合法.若合法,返回true,否则返回false(假定被判定的操作序列已存入一维数组中). #include <stdio.h> #incl ...
- 数据结构考研复习(自用非408)顺序表
2.1线性表的基本概念 线性表按存储方式的不同,可以划分为顺序表和链表.线性表是具有相同数据类型的n个数据元素的有限序列,n为表长,当n=0时为空表. 线性表是一种逻辑结构,具有以下特点: 表中的元 ...
- 数据结构考研复习知识点梳理(自用非408)第一章
第一章.绪论 1.1什么是数据结构 1.数据元素是数据的基本单位,在计算机程序中通常作为一个整体考虑和处理 2.一个数据元素可以由若干个数据项构成,数据项是数据的不可分割的最小单位 3.数据对象是性质 ...
- 【C语言】斐波那契数列【递归与迭代】
一.背景介绍 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子 ...
最新文章
- PHP中exec()函数执行系统命令失败
- 幂等问题-概念上的通俗解释(未完待续)
- Linux初级运维(十七)——Linux内核编译与系统裁减
- freeradius+mysql+pptpd+radiusmanager 游戏×××代理站完整实验过程
- TortoiseGit客户端安装及使用(上传代码到git@osc
- FTP、FTPS 与 SFTP 简介
- 机器学习-支持向量机原理
- html鼠标自动图片放大,css如何实现鼠标放在图片上时图片放大呢?
- Mac os查看共享文件
- 计算机内存清理原理,怎样清理计算机内存
- 关闭Win10锁屏的防暴力破解功能
- 如何用photoshop来做流体渐变
- 通过Java生成.pfx(.p12)证书文件
- 基于python的情感分析案例-基于情感词典的python情感分析
- 零基础编写图片服务器(1)
- 1w存银行一年多少利息_100万存银行一年利息是多少?
- 【Zabbix】Zabbix微信告警配置演示
- oracle固定资产结帐,如何控制必须先固定资产模块结帐,才可以总账模块结账。...
- 线性代数学习笔记7-3:特征值的应用——解微分方程、矩阵的指数函数
- ssh框架可以使用Ajax,基于Ajax的SSH框架的应用研究