checkily 发表于 2018-1-25 11:04:49

递归看起来明白,但使用起来就不会。郁闷。。。

1.斐波那契数列:迭代方法
def fab(n):
    n1 = 1
    n2 = 1
    n3 = 1

    if n < 1:
      print('输入有误!')
      return -1

    while (n-2) > 0:
      n3 = n2 + n1
      n1 = n2
      n2 = n3
      n -= 1

    return n3

result = fab(20)
if result != -1:
    print('总共有%d对小兔出生!' % result)



2.斐波那契数列:递归方法
def fab(n):
    if n < 1:
      print('输入有误!')
      return -1

    if n == 1 or n == 2:
      return 1
    else:
      return fab(n-1) + fab(n-2)

result = fab(20)
if result != -1:
    print('总共有%d对兔子出生!' % result)

像番茄加两个蛋 发表于 2018-1-25 19:01:29

我也是,让我用就不会了~

tristanlch 发表于 2018-1-26 13:31:47

记住那个树状图就好,其实就是函数的循环,通过函数调用函数,只要碰到就会调用一般,然后再倒退回去。
页: [1]
查看完整版本: 递归看起来明白,但使用起来就不会。郁闷。。。