斐波那契数列(递归和非递归算法)
一、斐波那契数列介绍:
斐波那契数列,又称黄金分割数列。斐波那契数列是指这样一个数列 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)用递归算法编写时,注意溢出。
斐波那契数列(递归和非递归算法)相关推荐
- 斐波那契数列 递归与非递归算法实现
0. 介绍 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数 ...
- c语言实现斐波那契数列递归 和 非递归算法
斐波那契数列规律是从第三个数开始每个数是前两个数的和 递归: #include <stdio.h> int Fibon(int n) {if (n < 0) {printf(&quo ...
- 斐波纳契数列递归和非递归算法
递归的方法定义: F0=0, F1=1, Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 1.1.2.3.5.8.13.21.-- 所谓Fibonacci数列是指这样一种数列,它的前两 ...
- 斐波那契数列——递归与非递归算法时间复杂度分析
- 斐波那契的递归算法 c语言,C语言实现斐波那契数列递归和非递归算法
// c_dataStructure.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include using namespace st ...
- 斐波那契数列递归与非递归精讲
斐波那契数列是学习算法的入门级算法,要对算法进行研究的话我们就必须的掌握斐波那契数列算法.以下从斐波那契数列的简介,递归算法和非递归算法给大家进行介绍. 简介: 斐波那契数列(Fibonacci ...
- 斐波那契数列递归与非递归时间复杂度
问题 来自王道考研数据结构书籍,思维拓展 斐波那契数列有两种常用的算法:递归算法和非递归算法.试分别分析两种算法的时间复杂度. 递归方式 递归方式代码: 递归结束条件可以不同,如果数列从第一个开始且为 ...
- 斐波那契尾递归函数java_斐波那契数列 递归 尾递归 递推 C++实现
==================================声明================================== 本文原创,转载请注明作者和出处,并保证文章的完整性(包括本 ...
- Haskell 斐波那契 数列 递归实现
Haskell 斐波那契 数列 递归实现 haskell let fibonacci n = if n < 3 then 1 else fibonacci (n-2) + fibonacci(n ...
- C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...
最新文章
- 内存分段分页机制理解_深入理解虚拟机,JVM高级特性-自动内存管理机制
- resttemplate 请求重试_使用Spring Cloud Ribbon重试请求
- 前端技术公众号运营心得记录
- java基础—Objcet中的equals方法重写
- 快速幂(二进制理解)
- 新手做2D手游该用哪些工具?
- 在VS上部署OpenGL
- Leetcode: Binary Tree Inorder Traversal
- 女生适合做程序员吗?
- SQLServer生成带数据的脚本
- hdu -1251 统计难题(字典树水题)
- 如何升级mysql-libs_MySQL升级教程(CentOS)
- python中unique函数_Pandas Series.unique()用法介绍
- Java的scjp_Java认证scjp考试过关攻略[转]
- AutoCAD 2008中文版实用自学手册•机械设计篇
- exchange2010安装
- 各种路由的概念-直连路由、网关路由、主机路由、网络路由等
- Python多张图片合并成一个PDF
- Java程序员怎么迈向架构师
- 文件夹快速隐藏,文件夹选项中勾选隐藏目录依旧不能使其显示