Python 两种方式实现斐波那契数列

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368......

这个数列从第3项开始,每一项都等于前两项之和。

递归的方式实现

def fn(n):    if n==1:        return 1    elif n==2:        return 1    else:        return fn(n-1)+fn(n-2)

n=int(input())for i in range(1,n+1):    print(fn(i))

循环的方式实现
a=1b=1

n=int(input())if n<=2:    print(1)else:    print(1,1,end=‘ ‘)    for i in range(1,n-1):        a,b=b,a+b        print(b,end=‘ ‘)

这里介绍下 a,b=b,a+b a,b=b,a+b是先计算等号右边,右边计算完成再依次赋值给左边。
 

原文地址:https://www.cnblogs.com/clairejing/p/8207064.html

时间: 2024-11-08 10:38:47

Python 两种方式实现斐波那契数列的相关文章

两种方法递归斐波那契数列

__author__ = 'hechangting' #ecoding=utf-8 import itertools #迭代器 class Fib: def __init__(self): self.prev = 0 self.curr = 1 def __iter__(self): return self def __next__(self): value = self.curr self.curr += self.prev self.prev = value return value #生成

C# 4种方法计算斐波那契数列 Fibonacci

F1: 迭代法 最慢,复杂度最高 F2: 直接法 F3: 矩阵法 参考<算法之道(The Way of Algorithm)>第38页-魔鬼序列:斐波那契序列 F4: 通项公式法 由于公式中包含根号5,无法取得精确的结果,数字越大误差越大 1 using System; 2 using System.Diagnostics; 3 4 5 namespace Fibonacci 6 { 7 class Program 8 { 9 static void Main(string[] args) 1

Python迭代与递归方法实现斐波拉契数列

首先是迭代的方法实现: def f(n): f1, f2, fn = 1, 1, 1 while n>2: fn = f1 + f2 f1 = f2 f2 = fn n = n - 1 return fn 然后用递归的方法实现: def f(n): if n == 1: return 1 if n == 2: return 1 else: return f(n - 1 ) + f(n - 2) 很明显,此时递归的方法比迭代更简单更易懂

【python】迭代一列 斐波那契数列

1 def fabm(n): 2 if n < 1: 3 print('输入不能小于1') 4 return -1 5 6 if n == 1 or n == 2: 7 return 1 8 else: 9 return fabm(n-1) + fabm(n-2) 10 11 result = fabm(19) 12 if result != -1: 13 print('结果是%d' % result)

Python入门:生成器应用-斐波拉契数列

例子: 1,1,2,3,5,8,13,21...... def fib(max): n,a,b=0,0,1 while n<max: #print(b) yield(b) a,b=b,a+b n+=1 return 'done' f=fib(10) while True: try: x=next(f) print("f:",x) except StopIteration as e: print('Generator return value:',e.value) break 注意

【Python】【demo实验10】【练习实例】【打印斐波那契数列】

斐波那契数列介绍: 斐波那契数列(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>=3,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963

【Python】【demo实验14】【练习实例】【斐波那契数列】【经典兔子生小兔子问题】

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 每个月的兔子数量 1:22:23:4 2+24:6 2+2+25:10 2+2+2+2+26:16 6+6+47:26 10+10+6 第一个月和第二个月兔子不繁殖 第三个月,两个兔子繁殖两个兔子,共四个 第四个月,两个兔子继续繁殖两个兔子,小兔子不繁殖:共6个 以此类推 2,2,4,6,10,16,26 这个数量刚好是斐波那契数列 的两倍 源代码: #

求斐波那契数列的第n个数(递归、非递归)

用递归的方式求斐波那契数列的第n个数. 用非递归的方式求斐波那契数列的第n个数. 定义: 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368 特别指出:第0项是0,第1项是第一个1. 这个数列从第2项开始,每一项都等于前两项之和. #include<stdio.h> #include<stdlib.

java输出斐波那契数列

题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) //Java编程:三种