python百炼成钢实例006-斐波那契数列-输出最后一个和整个数列,迭代

题目:斐波那契数列。

程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。

在数学上,费波那契数列是以递归的方法来定义:

F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1]+ F[n-2](n=>2)

程序

# 方法1,输入数列,从0个值一直叠加到最后一个值,数列输出
def fib_seq(n):
    fib_seq = []
    i = 0
    while i <= n:
        if i == 0:
            fib_seq = [0]
            i += 1
        elif i == 1:
            fib_seq.append(1)
            i += 1
        else:
            fib_seq.append(fib_seq[i - 1] + fib_seq[i - 2])
            i += 1
    return fib_seq


fib_seq = fib_seq(10)
print(fib_seq)


# 方法2# 方法内部调用方法,输出最后一个值,直接函数内部迭代
def fib_seq_num(n):
    if n == 0:
        return 0
    elif n == 1 or n == 2:
        return 1
    else:
        return fib_seq_num(n - 1) + fib_seq_num(n - 2)


fib_seq_num1 = fib_seq_num(10)
print(fib_seq_num1)

 

posted @ 2021-11-10 18:09  依羽杉  阅读(182)  评论(0编辑  收藏  举报