py.斐波那契数列

本文介绍了如何使用Python编写斐波那契数列,通过直接解法和递归解法展示了代码实现,强调了值的保留和计算顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python3

# Fibonacci series: 斐波纳契数列

# 两个元素的总和确定了下一个数

理解:每一个新出现的值都是b,

           则原来b值成为a值。

          ps:注重对原有值的保留

直接解法

a, b = 0, 1

while b < 10:

    print(b)

    a, b = b, a+b

其中代码 a, b = b, a+b 的计算方式为先计算右边表达式,然后同时赋值给左边,等价于:

n = b      
b = a + b
a = n

 

递归解法://运用的条件:有已知的前提。

n=int(input('请输入一个整数:'))
def fab(n):
    if n<1:                          //判断输入的合法性
        print('输入有误!')
        return -1
    if n==1 or n==2:                 //此为已知
        return 1
    else:
        return fab(n-1)+fab(n-2)     //递归的精髓,每一个后来者,都是基于前面的积累。
result=[]                            //对于结果的保存。防止每一次总要递归,这个可以基于原先结果直接运算。
for i in range(1,n+1):
    result.append(fab(i))

print(result)

n=int(input('请输入一个整数:'))
dic = {0:0,1:1}
def fib(n):
    if n in dic:                     //如果存在于结果中,直接提取。
        return dic[n]
    else:
        temp = fib(n-1)+fib(n-2)     否则,递归大法。
        dic[n] = temp
        return temp
for i in range(n+1):
    print(fib(i),end=" " )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值