使用python求斐波那契数列中第n个数的值示例代码
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
求斐波那契数列中第n个数的值:1,1,2,3,5,8,13,21,34…
方法一:用for循环
n = int(input('请输入要一个整数:')) n_2 = 0 n_1 = 1 current = 1 for x in range(2, n+1): current = n_2 + n_1 n_2 = n_1 n_1 = current print('第%d个数是%d'%(n, current))
方法二:递归函数
def fab(n): if n == 1 or n == 2: return 1 return fab(n-1) + fab(n-2) print(fab(5))
方法三:生成器
def fib(n): a, b = 0, 1 for _ in range(n): a, b = b, a + b yield a for val in fib(20): print(val)
总结
到此这篇关于使用python求斐波那契数列中第n个数的值的文章就介绍到这了,更多相关python斐波那契数列第n个数的值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
python实现斐波那契数列的方法示例
介绍 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下递归的方法定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) . 1. 元组实现 fibs = [0, 1] for i in range(8): fibs.append(fibs[-2] + fibs[-1]) 这能得到一个在指定范围内的斐波那契数列的列表. 2. 迭代器实现 class Fibs: def __init__
-
如何使用Python实现斐波那契数列
斐波那契数列(Fibonacci)最早由印度数学家Gopala提出,而第一个真正研究斐波那契数列的是意大利数学家 Leonardo Fibonacci,斐波那契数列的定义很简单,用数学函数可表示为: 数列从0和1开始,之后的数由前两个数相加而得出,例如斐波那契数列的前10个数是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34. 用 Python 实现斐波那契数列常见的写法有三种,各算法的执行效率也有很大差别,在面试中也会偶尔会被问到,通常面试的时候不是让你简单的用递归写写就完了,
-
python斐波那契数列的计算方法
题目: 计算斐波那契数列.具体什么是斐波那契数列,那就是0,1,1,2,3,5,8,13,21,34,55,89,144,233. 要求: 时间复杂度尽可能少 分析: 给出了三种方法: 方法1:递归的方法,在这里空间复杂度非常大.如果递归层数非常多的话,在python里需要调整解释器默认的递归深度.默认的递归深度是1000.我调整了半天代码也没有调整对,因为递归到1000已经让我的电脑的内存有些撑不住了. 方法2:将递归换成迭代,这样时间复杂度也在代码中标注出来了. 方法3:这种方法利用了求幂的
-
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
在最开始的时候所有的斐波那契代码都是使用递归的方式来写的,递归有很多的缺点,执行效率低下,浪费资源,还有可能会造成栈溢出,而递归的程序的优点也是很明显的,就是结构层次很清晰,易于理解 可以使用循环的方式来取代递归,当然也可以使用尾递归的方式来实现. 尾递归就是从最后开始计算, 每递归一次就算出相应的结果, 也就是说, 函数调用出现在调用者函数的尾部, 因为是尾部, 所以根本没有必要去保存任何局部变量. 直接让被调用的函数返回时越过调用者, 返回到调用者的调用者去.尾递归就是把当前的运算结果(或路
-
python求斐波那契数列示例分享
复制代码 代码如下: def getFibonacci(num): res=[0,1] a=0 b=1 for x in range(0,num): if x==a+b: res.append(x) a,b=b,a+b return res res=getFibonacci(1000)print(res) #递归a=[0,1]qian=0def fibna(num,qian): print(num) he=num+qian if he<1000: a.append(he) qian
-
利用Python实现斐波那契数列的方法实例
今天我们来使用Python实现递归算法求指定位数的斐波那契数列 首先我们得知道斐波那契数列是什么? 斐波那契数列又叫兔子数列 斐波那契数列就是一个数列从第三项开始第三项的值是第一项和第二项的和依次类推 其次我们再来看递归算法是什么? 递归就是如果函数(子程序)包含了对其自身的调用,该函数就是递归的 话不多说上案例: 第一种方法:不使用递归算法 #首先定义一个新的列表来储存最后的结果 new_list = [] # 然后让用户输入指定位数 my_put = int(input("请输入使用递归算法
-
python3实现斐波那契数列(4种方法)
基础版(list方法) # 比较占内存 w = int(input("输入一个数字还你一个斐波那契数列:")) list_res = [] def list_n(n): if n>=3: res=list_n(n-1)+list_n(n-2) else: res=1 return res print("开始") for i in range(0,w): list_res.append(list_n(i+1)) print(list_res) 升级版 # 比较占
-
使用python求斐波那契数列中第n个数的值示例代码
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) 求斐波那契数列中第n个数的值:1,1,2,3,5,8,13,21,34- 方法一:用for循
-
Python打印斐波拉契数列实例
本文实例讲述了Python打印斐波拉契数列的方法.分享给大家供大家参考.具体实现方法如下: #打印斐波拉契数列 #!/usr/bin/python def feibolaqi(n): if n == 0 or n == 1: return n else: return feibolaqi(n-1) + feibolaqi(n-2) num = int(raw_input('please input a int:')) if num >= 0: print 'feibolaqi(%d) is %d
-
java数学归纳法非递归求斐波那契数列的方法
本文实例讲述了java数学归纳法非递归求斐波那契数列的方法.分享给大家供大家参考.具体如下: Integer能表示的最大值为 2147483647 大概是21.4亿,这里没有考虑溢出情况(当size为983时就会溢出)! import java.util.List; import java.util.ArrayList; /** * @author jxqlovejava * 斐波那契数列 */ public class Fibonacci { public static List<Intege
-
Python实现斐波那契数列的多种写法总结
目录 1.for循环 2.while循环 3.使用递归 4.递归+for循环 5.递归+while循环 6.递归+定义函数+for循环 7.指定列表 趣方程求解 pandas 每日一练 斐波那契数列——经典例子,永不过时!!! 1.for循环 def fibonacci1(n): a, b = 0, 1 for i in range(n): a, b = b, a+b print(a) fibonacci1(3) 或 def fib1(w): a, b = 1, 1 for i in range
-
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
这篇文章主要介绍了JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 斐波那契数列 //求斐波那契数列第n位 var n = parseInt(window.prompt('输入你要求的斐波那契数列的位数')); var first = 1, second = 1, third; if (n > 2) { for (var i = 0; i < n - 2; i++) {
-
解析分别用递归与循环的方式求斐波那契数列的实现方法
代码如下: 复制代码 代码如下: public class Fibonacci { public static long recursive(int n) { if (n <= 0) return 0; if (n == 1) return 1; return recursive(n - 1) + recursive(n - 2); } public static long loop(int n) { if (n <= 0) return 0; if (n == 1)
随机推荐
- mysql启用skip-name-resolve模式时出现Warning的处理办法
- 详解vue-resource promise兼容性问题
- 浅谈java 字符串,字符数组,list间的转化
- Bootstrap每天必学之前端开发框架
- json格式数据的添加,删除及排序方法
- 用 Composer构建自己的 PHP 框架之构建路由
- 比较两个字符串是否相等的shell代码
- MySQL实现MYISAM表批量压缩的方法
- mysql数据库插入速度和读取速度的调整记录
- PHP实现简单实用的分页类代码
- Linux用户配置sudo权限(visudo)的方法
- PHP 存取 MySQL 数据库的一个例子
- java邮件发送简单实现代码
- C数据结构之双链表详细示例分析
- jQuery实现流动虚线框的方法
- 解析Jquery取得iframe中元素的几种方法
- StringTemplate遇见jQuery冲突的解决方法
- 微信小程序 audio音频播放详解及实例
- dedecms下仿chinaz二级下拉动态读取代码
- 教你全面认识操作系统的svchost进程