味来 发表于 2019-4-4 14:08:21

斐波那契数列的兔子迭代算法逻辑怎么理解?

> 求大佬解下题,万分感谢!{:5_109:}

def fab(n):
    n1 = 1
    n2 = 1
    n3 = 1# 默认初始值先为1,这里也不太明白为啥要先预设 n3 = 1
    if n < 1:
      print('输入有误!')
      return -1
    while (n - 2) > 0:#搞不太明白为什么 这里是 n-2 呢?n-1 也可以吧? 只要值> 0就会进入到循环
      n3 = n2+n1
      n1 = n2
      n2 = n3
      n -= 1
    return n3
result = fab(20)
if result != -1:
    print('总共有 %d 对小兔崽子'% result)

我是站长 发表于 2019-4-6 21:49:02

我觉得这里设置默认设置n3=1,而且while(n-2)>0;是为了当n取1和2的时候都不进入循环直接返回1。
页: [1]
查看完整版本: 斐波那契数列的兔子迭代算法逻辑怎么理解?