1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python利用递归函数实现斐波那契数列_Python使用while循环输出斐波那契数列(Fibonacci)...

python利用递归函数实现斐波那契数列_Python使用while循环输出斐波那契数列(Fibonacci)...

时间:2023-08-05 21:55:57

相关推荐

python利用递归函数实现斐波那契数列_Python使用while循环输出斐波那契数列(Fibonacci)...

斐波那契数列又称费波那契数列(意大利语:Successione di Fibonacci),又译为费波拿契数、斐波那契数列、费氏数列、黄金分割数列。在西方,首先研究这个数列的是比萨的列奥那多(意大利人斐波那契Leonardo Fibonacci(1175-1250)),斐波那契在1202年著的《计算之书》中描述了该数列。(百度百科)

一、斐波那契数列定义

在数学上,以递归的形式来定义这个数列。

F0 = 0

F1 = 1

Fn = Fn-1 + Fn-2 (n≥2)

也就是说,该数列的第0项是0,第1项是1,从第2项开始,每项都是前两项的和。

很多教科书中在描述该问题时都是从第1项开始的,也就是说:

F1 = 1

F2 = 1

Fn = Fn-1 + Fn-2 (n≥3)

二、该问题在Python中的实现

下面给出再Python中的实现方法:

1、列表版

N = 40 #输出项数

fn = [1,1] #定义前两项

i = 2 #从第3项开始计数# 循环赋值

while

i < N:

fn.append(fn[ i - 1 ] + fn[ i - 2 ]) # 每项是前两项的和

i += 1 #循环变量递增

for

e

in

fn: # 迭代输出列表中的每一项

print(e)

输出结果(结果较长,这里省略了中间的项):

1

1

2

3

5

8

13

21

...

24157817

39088169

63245986

1023341552、变量版

f1 = 1 # 第1项

f2 = 1 # 第2项

i = 2 # 从第3项开始循环

N = 40 / 2 #因为每次输出两项,所以除以2

# 每次输出两项,因为在循环开始时输出

# 会造成最后两项不会输出,所以这里要+1

while

i <= N + 1:

print(f1,",",f2)

f1 = f1 + f2 # 第n项

f2 = f1 + f2

# 第n + 1项

i += 1 # 循环计数+1

输出结果:

1 , 1

2 , 3

5 , 8

13 , 21

34 , 55

89 , 144

233 , 377

610 , 987

1597 , 2584

4181 , 6765

10946 , 17711

28657 , 46368

75025 , 121393

196418 , 317811

514229 , 832040

1346269 , 2178309

3524578 , 5702887

9227465 , 14930352

24157817 , 39088169

63245986 , 1023341553、简洁版

f1,f2 = 0, 1

N = 40

i = 2

while

i <= N + 1:

print (f2, end = ' ')

f1,f2 = f2, f1 + f2

这个算法会把所有的项输出到一行中,每个用空格隔开。

输出结果:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155

4、控制每行输出的数量

f1,f2 = 0,1

N = 40

i = 2

j = 0

num_per_row = 5

while

i <= N + 1:

print(f2,end = ' ')

j += 1

if

j % num_per_row == 0:

print('\n',end = '')

f1,f2 = f2, f1 + f2

i += 1

输出结果:

1 1 2 3 5

8 13 21 34 55

89 144 233 377 610

987 1597 2584 4181 6765

10946 17711 28657 46368 75025

121393 196418 317811 514229 832040

1346269 2178309 3524578 5702887 9227465

14930352 24157817 39088169 63245986 102334155

5、使用函数输出第n项

def

Fibonacci(n):

if

n < 0:

raise

IndexError('参数不能小于0。')

if

n == 0:

return

0

elif

n <= 2:

return

1

else:

return

Fibonacci(n - 1) + Fibonacci(n - 2)

v = Fibonacci(30)

print(v)

输出结果:

832040以上介绍了Python中计算Fibonacci数列的相关算法,如有不妥之处,请留言评论。

如需转载,请注明出处和本文链接:翔宇亭IT乐园(/)

本文链接地址:/article/python//6470.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。