斐波那契数列的经典解法是采用递归的方式:

f(n)=f(n-1)+f(n-2)   n>2

f(1)=1      n=1

f(2)=1      n=2

按照这个思路可以写出递归算法:

#include<iostream>
using namespace std;
int fabonacci(int n){if(n==1)return 1;else{if(n==2)return 1;elsereturn fabonacci(n-1)+fabonacci(n-2);}
}
int main(){int number;cout<<"请输入一个数字"<<endl;cin>>number;cout<<fabonacci(number)<<endl;return 0;
}

改进型的方法是用迭代来代替递归:

#include<iostream>
using namespace std;
int main(){int number;cout<<"请输入一个数字:"<<endl;cin>>number;int fabonacci[100];fabonacci[0]=1;fabonacci[1]=1;int i;for(i=2;i<number;i++)fabonacci[i]=fabonacci[i-1]+fabonacci[i-2];cout<<fabonacci[number-1]<<endl;return 0;
}

转载于:https://blog.51cto.com/beyond316/1222950

经典算法——斐波那契数列相关推荐

  1. C语言中经典算法——斐波那契数列的几种算法

    斐波那契数列的递推公式: 我们尝试计算斐波那契数列的第n项并输出. 1.递归法 #include<stdio.h> int fib(int m) {if(m>=3){return f ...

  2. html5斐波那契数列,经典的斐波那契数列与arguments.callee

    经典的斐波那契数列与arguments.callee HTML5学堂:提到斐波那契数列,很多人还不是太清楚,但是如果提到兔子繁殖这个经典题目,相信学过计算机语言的人们会立刻感觉"亲切&quo ...

  3. Java数据结构与算法---斐波那契数列Fibonacci

    Java数据结构与算法-斐波那契数列Fibonacci 原理都很简单,直接上代码: package cn.m_fibonacci;public class Fibonacci {public stat ...

  4. 最优化算法-斐波那契数列搜索

    斐波那契数列搜索,参考Edwin<最优化导论>第四版7.3章节,算法采用go语言实现. /****************************************** FileNa ...

  5. 427-动态规划算法-斐波那契数列

    动态规划算法求解斐波那契数列 状态:dp数组,存储已经求解的子问题的最优解 递归版本的动态规划算法 //参数n表示斐波那契数列中数字的个数. //返回相应个数的斐波那契数列数字的值. int fabn ...

  6. 趣学算法--斐波那契数列

    14天阅读挑战赛 努力是为了不平庸~ 目录 1.神奇的兔子数列 1.1问题分析 1.2斐波那契数列 1.3算法设计 1.3.1递归代码 1.3.2递归的改进,O(n)的代码 1.3.3时间复杂度为O( ...

  7. 算法-斐波那契数列:兔子序列

    利用递归函数求斐波那契数列(兔子序列) 1.1.2.3.5.8.13.21-求第n个数是几,n任意一个数大家可以自定义,比如10,20等 分析: 从给出的数列中,可知, n=1时→1 n=2时→1 n ...

  8. 算法—斐波拉契数列(跳楼梯问题)

    问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 这道题一看,就会轻易的知道用递归,f(1)=1;f(2)=1;f(n)=f(n-1)+f(n-2 ...

  9. 算法-斐波那契数列(黄金分割数列|兔子数列)

    前言 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列 ...

最新文章

  1. Python基础1 历史 变量
  2. adb 命令 pc端 复制粘贴 文本到android设备
  3. Adam是RmsProp和momentum算法的结合(列表比较)
  4. 一条命令解决系统N多故障
  5. yum 出错,提示Segmentation Fault (core Dumped) 的解决办法
  6. linux实时进程优先级rt,Linux实时性- PREEMPT_RT实时抢占实现
  7. mysql启动错误排查-无法申请足够内存
  8. 3.12 12!配对
  9. 设置开机ceph自动map rbd块设备
  10. css代码总结,css属性代码大全总结(一)
  11. HTML基础第九讲---表单
  12. 解构网约车界“拼多多”:花小猪背后的商业逻辑和价值空间
  13. 乐观锁 optimistic 和 悲观锁 pessimistic lock
  14. pandas自动化实战小任务1--对excel表格分 供应商 付款年月 进行汇总(涉及根据即有相同也有不同的index的表格合并)公司的数据
  15. 安卓手机网上商城-2号店
  16. MarkDown语法详解(Typora编辑器)
  17. C51 - DS18B20
  18. Kafka为什么要抛弃ZooKeeper?
  19. Servlet初级学习加入数据库操作(三)
  20. XCTF攻防世界BABYRE逆向

热门文章

  1. 【安装配置】克隆方式安装Oracle数据库软件
  2. VMworld 2016 US带来了哪些惊喜?
  3. java_object的具体使用--上帝
  4. RHCE认证培训+考试七天实录(三)
  5. Iphone革了谁的命?
  6. php 最大限制,php – ModSecurity最大发布限制(PCRE限制错误)
  7. sap权限激活_SAP产品的Field Extensibility
  8. python的idle支持两种方式_BO发布E8 Sport耳机,支持IP57防水
  9. 堆栈的缓冲区溢出进不了系统_一文理解缓冲区溢出
  10. linux中断响应时间太慢_Linux中的进程调度有哪些核心概念?