1,1,2,3,5,8,13,21,34,55,89……
哈哈,我知道你下一句要说什么啦?
什么?
144,233……
找规律找的不错!!!其实我想说的是:斐波拉契数列!
……
斐波那契数列/兔子数列.jpg
在此之前,我都是只知道“1,1,2,3,5,8……”这个数字序列,并不知道它的名字,也不知道它从哪里来。如果我是这个序列,我一定很伤心,居然不知道我的名字——斐波那契数列(Fibonacci sequence)!这个英文不知道多少人记得住!
更多关于斐波那契数列的问题,请移驾百度百科!
自从学python,我已经抛弃了计算器。why?因为python比计算器来的快啊!今天要说的斐波那契数列也是,python生成远比书写加计算来的快!如果你也想拥有这项牛(zhuang)逼(bi)技能,赶快和我一起学python吧!
python实现斐波那契数列方法一之递归:
递归(recursion):程序调用自身的编程技巧。
递归满足2个条件:
有反复执行的过程(调用自身)
有跳出反复执行过程的条件(递归出口,有返回值)
def fab(x):
if x==1:
return 1
elif x==2:
return 1
elif x>2:
result=int(fab(x-1))+int(fab(x-2))————这里的整型转化似乎有点多余!
return result
elif x<0:
print ("输入有误,请重新输入!")
number=int(input("请输入斐波拉契数列的项数:"))
result=fab(number)
print("第 %d项斐波拉契数列为:%d"%(number,result))
python实现斐波那契数列方法二之迭代:
相比于方法一,方法二实现的速度更快哦!
def fab(n):
n1=1
n2=1
n3=2
if n<1:
print("输入有误,请重新输入!")
return -1
while (n-2)>0:
n3=n2+n1————是不是似曾相识呢?排序问题的方法类似哦!
n1=n2
n2=n3
n-=1
return n3
number=int(input("请输入斐波拉契数列的项数:"))
result=fab(number)
if result != -1:
print ("第 %d项斐波拉契数列为:%d" % (number,result))
- end -