计算fibonacci数(多种方法)
#include <iostream>
using namespace std; //计算fibonacci数 //方法一:二分递归法,时间复杂度为O(2^n),额外空间复杂度为常数
int RecursiveFibonacci(int n)
{
return (n < ) ? n : RecursiveFibonacci(n - )+RecursiveFibonacci(n-);
}
//方法二:线性递归,时间复杂度为O(n),空间复杂度为O(n)
int LinearrecursionFibnoacci(int n,int& prev)//要用到引用,要不不可以!!!!
{
if (n == )
{
prev = ;
return ;
}
else
{
int prevPrev;
prev = LinearrecursionFibnoacci(n - , prevPrev);
return prevPrev + prev;
}
}
//方法三:迭代法,时间复杂度为O(n),空间复杂度为常数
int IterationFibonacci(int n)
{
int f = , g = ;
while (n--)
{
g += f;
f = g - f;
}
return g;
} int main()
{
int num_1,num_2,num_3;
int f=;
num_1 = RecursiveFibonacci();
num_2 = LinearrecursionFibnoacci(, f);
num_3 = IterationFibonacci();
cout << num_1 << endl;
cout << num_2 << endl;
cout << num_3 << endl;
return ;
}
计算fibonacci数(多种方法)的更多相关文章
- Interview----用最快的方法计算 Fibonacci 数
输入 n, 用最快的方法求该 Fibocacci 数列的第 n 项. 方法1: 递归,非常慢 方法2: 迭代,因此计算 f[1] , f[2], f[3] ,,,, 复杂度 O(N) 方法3: 采用以 ...
- Fibonacci数Python的四种解法
1: # 计算Fibonacci数: # Naive版本,时间效率O(1.618^n) # 记忆化版本(增加line8.10.13),时间效率O(n) # 注意:当n超过1000,可能超过系统允许的最 ...
- python-使用函数输出指定范围内Fibonacci数的个数
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目. 所谓Fibonacci数列 ...
- ACM Fibonacci数 计算
Fibonacci数 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递 ...
- 1143 多少个Fibonacci数
时间限制:500MS 内存限制:65536K提交次数:270 通过次数:16 题型: 编程题 语言: C++;C Description 给你如下Fibonacci 数的定义: F1 = 1 F ...
- SCAU1143 多少个Fibonacci数--大菲波数【杭电-HDOJ-1715】--高精度加法--Fibonacci数---大数比较
/*******对读者说(哈哈如果有人看的话23333)哈哈大杰是华农的19级软件工程新手,才疏学浅但是秉着校科联的那句“主动才会有故事”还是大胆的做了一下建一个卑微博客的尝试,想法自己之后学到东西都 ...
- 关于java的递归写法,经典的Fibonacci数的问题
经典的Fibonacci数的问题 主要想展示一下迭代与递归,以及尾递归的三种写法,以及他们各自的时间性能. public class Fibonacci { /*迭代*/ public static ...
- ArcGIS应用——四种计算图斑面积的方法
ArcGIS中有多种方法可计算出图斑面积,本文总结了四种方法,是否可堪称史上最全? 1.计算几何 本人认为这是最适合非专业人士的方法,直接利用ArcGIS中的计算几何功能进行计算. a.首先添加一do ...
- SQL语句的添加、删除、修改多种方法
SQL语句的添加.删除.修改虽然有如下很多种方法,但在使用过程中还是不够用,不知是否有高手把更多灵活的使用方法贡献出来? 添加.删除.修改使用db.Execute(Sql)命令执行操作╔------- ...
随机推荐
- Mac下配置git环境和客户端SourceTree+Git常用命令大全(Mac 10.12)
前言: 如果不想折腾,直接下载GitHub桌面端,高度集成git,不需要学习git的任何命令. https://desktop.github.com/ 一.配置git环境 1.上官网https://g ...
- (转)sysbench部署与参数详解
sysbench部署 原文:https://wing324.github.io/2017/02/07/sysbench%E9%83%A8%E7%BD%B2/ sysbench作为每一个系统管理员,都应 ...
- OGNL取Map,List,Set的值
用到的类有: 相应代码: public class Dog { private String name; public Dog(){ } public Dog(String name){ this.n ...
- Window.localStorage
博客园 https://www.cnblogs.com/st-leslie/p/5617130.html 参考文档 https://developer.mozilla.org/zh-CN/docs/W ...
- HttpClient使用详细教程
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且 ...
- Android开源项目xUtils HttpUtils模块分析(转)
xUtils是github上的一个Android开源工具项目,其中HttpUtils模块是处理网络连接部分,刚好最近想整理下Android网络编程知识,今天学习下xUtils中HttpUtils. x ...
- Django models 的增删改查
增 from app01.models import * #create方式一: Author.objects.create(name='Alvin') #create方式二: Author.obje ...
- 0.ECMAScript 6 简介
ECMAScript 6简介 ECMAScript 6 简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目 ...
- shell脚本分析apache日志状态码
一.首先将apache日志按天切割 vi /etc/httpd/conf/httpd.conf ErrorLog "|rotatelogs /var/log/httpd/%Y% ...
- SSRS 报表中的Chart在IE中不显示
解决办法: 重启SSRS服务...