一、斐波那契数列介绍:

斐波那契数列,又称黄金分割数列。斐波那契数列是指这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987…

二、分析

这个数列从第3项开始,每一项都等于前两项之和。即:
F(1)=1, F(2)=1,
F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

三、程序

1、递归算法

#include<stdio.h>
#include<windows.h>
long long Fib(int N){if (N< 3)return 1;return Fib(N - 1) + Fib(N - 2);
}
int main(){int i = 0;printf("下标为:");scanf_s("%d", &i);printf("数字为:%d\n", Fib(i));system("pause");return 0;
}

2、非递归算法(迭代算法)

#include<stdio.h>
#include<windows.h>
long long Fib(int N){int First = 1;int Second = 1;int Third = 1;   //N如果为1或者为2,直接返回Third=1.while (N > 2){Third = First + Second;First = Second;Second = Third;N--;}return Third;
}
int main(){int i = 0;printf("下标为:");scanf_s("%d", &i);printf("数字为:%d\n", Fib(i));system("pause");return 0;
}

四、运算结果:

五、总结:

注意:
(1)斐波那契数列用递归算法编写时效率低,因为有超过一半的重复计算。
(2)用递归算法编写时,注意溢出。

斐波那契数列(递归和非递归算法)相关推荐

  1. 斐波那契数列 递归与非递归算法实现

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

  2. c语言实现斐波那契数列递归 和 非递归算法

    斐波那契数列规律是从第三个数开始每个数是前两个数的和 递归: #include <stdio.h> int Fibon(int n) {if (n < 0) {printf(&quo ...

  3. 斐波纳契数列递归和非递归算法

    递归的方法定义:  F0=0, F1=1, Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 1.1.2.3.5.8.13.21.-- 所谓Fibonacci数列是指这样一种数列,它的前两 ...

  4. 斐波那契数列——递归与非递归算法时间复杂度分析

  5. 斐波那契的递归算法 c语言,C语言实现斐波那契数列递归和非递归算法

    // c_dataStructure.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include using namespace st ...

  6. 斐波那契数列递归与非递归精讲

    斐波那契数列是学习算法的入门级算法,要对算法进行研究的话我们就必须的掌握斐波那契数列算法.以下从斐波那契数列的简介,递归算法和非递归算法给大家进行介绍.   简介: 斐波那契数列(Fibonacci ...

  7. 斐波那契数列递归与非递归时间复杂度

    问题 来自王道考研数据结构书籍,思维拓展 斐波那契数列有两种常用的算法:递归算法和非递归算法.试分别分析两种算法的时间复杂度. 递归方式 递归方式代码: 递归结束条件可以不同,如果数列从第一个开始且为 ...

  8. 斐波那契尾递归函数java_斐波那契数列 递归 尾递归 递推 C++实现

    ==================================声明================================== 本文原创,转载请注明作者和出处,并保证文章的完整性(包括本 ...

  9. Haskell 斐波那契 数列 递归实现

    Haskell 斐波那契 数列 递归实现 haskell let fibonacci n = if n < 3 then 1 else fibonacci (n-2) + fibonacci(n ...

  10. C和指针之函数之实现阶乘和斐波那契数(递归和非递归)

    1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...

最新文章

  1. 内存分段分页机制理解_深入理解虚拟机,JVM高级特性-自动内存管理机制
  2. resttemplate 请求重试_使用Spring Cloud Ribbon重试请求
  3. 前端技术公众号运营心得记录
  4. java基础—Objcet中的equals方法重写
  5. 快速幂(二进制理解)
  6. 新手做2D手游该用哪些工具?
  7. 在VS上部署OpenGL
  8. Leetcode: Binary Tree Inorder Traversal
  9. 女生适合做程序员吗?
  10. SQLServer生成带数据的脚本
  11. hdu -1251 统计难题(字典树水题)
  12. 如何升级mysql-libs_MySQL升级教程(CentOS)
  13. python中unique函数_Pandas Series.unique()用法介绍
  14. Java的scjp_Java认证scjp考试过关攻略[转]
  15. AutoCAD 2008中文版实用自学手册•机械设计篇
  16. exchange2010安装
  17. 各种路由的概念-直连路由、网关路由、主机路由、网络路由等
  18. Python多张图片合并成一个PDF
  19. Java程序员怎么迈向架构师
  20. 文件夹快速隐藏,文件夹选项中勾选隐藏目录依旧不能使其显示

热门文章

  1. 【Android界面实现】模仿淘宝客户端倒计时控件
  2. android 2.1你好八月,八月你好的唯美句子
  3. ubuntu 20.04 | .bashrc 文件详解
  4. Nim游戏,异或解决问题,神证明
  5. 双飞翼布局与圣杯布局完全解读
  6. 【简洁明了MySQL】MySQL基础操作之连接,创建和删除数据库
  7. 博士申请 | 美国华盛顿大学朱成成老师招收医学图像方向博士/博后/RA
  8. 如何在Photoshop利用消失点
  9. 读《世界因我而不同》
  10. 用 Python 为接口测试自动生成用例