Funnyci 发表于 2020-3-26 22:11:46

递归函数求斐波那契数列

编程:根据斐波那契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2) (n>=2),输出不大于100的序列元素。
def F(n):
    if n == 0:
      return 0
    elif n == 1:
      return 1
    else:
      return F( n-1 ) + F( n-2 )
while True :
    i = 0
    if F(i) <= 100:
      print(F(i))
    i = i + 1
但是结果全是零,成了死循环,不知道错哪了,求助

永恒的蓝色梦想 发表于 2020-3-26 22:14:42

改为i = 0
while True :
    if F(i) <= 100:
      print(F(i))
    i = i + 1每次i=i+1之后都i=0,当然没结果

Funnyci 发表于 2020-3-26 22:18:39

永恒的蓝色梦想 发表于 2020-3-26 22:14
改为每次i=i+1之后都i=0,当然没结果

好滴,谢谢

sunrise085 发表于 2020-3-26 22:19:55

本帖最后由 sunrise085 于 2020-3-26 22:22 编辑

1、输出全都是0,是因为每次循环i都被赋值为0 了
2、死循环是因为你没有break跳出循环。
def F(n):
    if n == 0:
      return 0
    elif n == 1:
      return 1
    else:
      return F( n-1 ) + F( n-2 )
i = 0
while True :
    if F(i) <= 100:
      print(F(i))
    else:
      break
    i = i + 1

Funnyci 发表于 2020-3-26 22:23:40

sunrise085 发表于 2020-3-26 22:19
1、输出全都是0,是因为每次循环i都被赋值为0 了
2、死循环是因为你没有break跳出循环。

好的好的,谢谢

work-dog 发表于 2020-3-26 22:38:29

def F(n):
    if n == 0:
      return 0
    elif n == 1:
      return 1
    else:
      return F( n-1 ) + F( n-2 )
i = 0
while True :
    if F(i) <= 100:
      print(F(i))
    else:
      break
    i = i + 1
页: [1]
查看完整版本: 递归函数求斐波那契数列