张静aa 发表于 2021-6-7 15:07:23

第22讲视频中关于计算兔子繁殖数量的疑问

题目:F(n)=   1      n=1
                     1   n=2
                     F(n-1)+F(n-2)n>2      
问:经历20个月后。会有多少只兔子?
代码:   def fab(n):
    n1 = 1
    n2 = 1
    n3 = 1
    if n<1:
      print('输入错误!')
      return -1
    while (n-2)>0:
      n3=n1+n2
      n1=n2
      n2=n3
      n=n-1
    return n3
result = fab(20)
if result !=-1:
    print('总共有%d对兔子.'% result)
疑问:n=n-1 这里不明白,视频里讲是少了一次循环。还是不太理解,希望有大神可以指点一下~{:10_245:}
   

      

Twilight6 发表于 2021-6-7 22:47:28



因为 n 是作为斐波那契数列个数,即兔子繁殖次数

n-1 是因为每循环一次得出一次斐波那契数列的值,所以减少一次循环次数

页: [1]
查看完整版本: 第22讲视频中关于计算兔子繁殖数量的疑问