斐波那契数列python递归,用递归函数求斐波那契数列Python
主题1
已知的序列有1,1,2,3,5,8,13,…。定律从第三项开始,每项等于前两项之和。这个数列就是斐波那契数列。
需要斐波那契数列规律的第11项。
代码实现-非递归
effib_show(n):
a,b=0,1
而n 0:
a,b=b,a b
n -=1
返回a
Print (Fib _ show (11))斐波那契数列的第11项:{} 。格式)
代码实现-递归
effib_recursive(n):
如果n==1或n==2:
1次返回
returnfib _递归(n-1)fib _递归(n-2 ) fib _递归
Print (Fib _ recursive (11)),斐波那契数列第11项:{} 。格式)
主题2
需要符合斐波纳契数列法则的前11项。
代码实现1
effib_show(n):
a,b=0,1
而n 0:
如果n==1:
打印(b)是
否则:
Print (b,end=,)
a,b=b,a b
n -=1
FIB_show(11)).
代码实现2
effib_show(n):
如果n==1:
返回“1”
如果n==2:
返回 1,1
RES=[ 1,1 ]
forIinrange(2,n):
RES.append(RES(-1 ) RES(-2)).
返回“,”。join([str(I) for i in res]
Print(斐波那契数列的前11项:{} 。format) fib_show(11))
主题3
对于斐波那契数列,1,1,2,3,5,8,13,这个数列中的数字叫做斐波那契数。
如果给定一个数n,它一定是一个斐波那契数。在每一步中,当前数目N可以改变为N-1或N-1。把n转换成斐波那契数需要几个步骤?
例如:
如果给定一个公式15,与之相邻的两个斐波那契数分别是13和21,那么这个公式15变成13需要两步,变成21需要六步,所以这里至少需要两步。
实现这个想法
找出与指定数字相邻的两个斐波那契数:分别是A和B。
找出指定的数字以及A和B之间分别向左和向右移动的距离
比较left_step和right_step时,最小值是所需的最小步数。
代码实现
deffib_step(数字) :
a,b=0,1
最小步长=0
虽然正确:
当#b大于输入数num时,A是最后一个周期的B,此时A必须小于num。
如果num=a且num=b:
left_step=num - a
右_步=b -数
如果左移右移:
最小步长=向左步长
否则:
最小步长=最大步长
布莱克
a,b=b,a b
返回最小步长
至少)步(。需要format(FIB_step(15))来将print(15)更改为Fibonacci数。
翻译:https://www.cnblogs.com/wintest/p/13768793.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。