python斐波那契数列列表_python_斐波那契数列

什么是斐波那契数列?

-- 一组第从第三个值开始,每个值都等于前两个值之和的一种有意思的数列

如[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

如何用程序进行实现?

-- 逻辑整理

初始值n_1 = 1, n_2 = 1

n_3 = n_1 + n_2

第三个值开始,每个值都是前两个值之和,假如n_1 = n_2 ,n_2 = n_3,

实现了整体 n_1, n_2往后移动一个数,也就是说,现在的n_1 +n_2 等价于 n_2 + n_3

其结果虽然给n_3接收,但是n_3本质上是第四个数了,不妨后面的数都是如此,嘉祥n_3无限往后移

n_3 可以代替任何后面的数

-- 程序化:

#!/usr/bin/python3

__author__ = 'beimenchuixue'

__blog__ = 'http://www.cnblogs.com/2bjiujiu/'

def fab(n):

list_fab = [] # 定义接收fab值列表

n_1, n_2 = 1, 1 # 定义初始值 n_1=1,n_2=1

list_fab.append(n_1) # 把两个初始值加入到fab值列表

list_fab.append(n_2)

for i in range(n-2): # 按输入要求几个减去2,因为有两个初始值

n_3 = n_1 + n_2 # 第三个值 = 前两个值之和

list_fab.append(n_3) # 把加起来的值加入到fab值列表

n_1, n_2 = n_2, n_3 # n_1和n_2同步往后移一位

return list_fab # 返回结果

if __name__ == '__main__':

result = fab(10) # 接收结果

print(result, len(result))

这个实现的是正向推导,没有实现子问题划分——从后面推导,想看?看我下一个递归篇

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值