关于斐波那契数列中计算兔子的数目
在讲斐波那契数列里面算兔子数的这个函数中,为什么要先假设a3 = 1啊?还有就是将a1 = a2,a2=a3,为什么要写一个 n-=1?是从后往前试算吗?def fab(n)
a1 = 1
a2 = 1
a3 = 1
ifn < 1:
print ("输入有误!")
return -1
while (n-2) > 0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a3
result = fab(20)
if result != -1:
print(“总共有%d 对小兔子诞生!” % result) 本帖最后由 ba21 于 2018-12-16 20:50 编辑
这也太复杂了吧。从哪里抄来的代码?
def fab(n):
a = 1
b = 1
f =
while n:
b, a = a+b, b
f.append(b)
n-=1
return f
print(fab(100))
b, a = a+b, b #交换,简单写成这样就可以了 ba21 发表于 2018-12-16 20:33
这也太复杂了吧。从哪里抄来的代码?
def fab(n):
从书上抄来的代码
方塘半亩 发表于 2018-12-20 22:31
从书上抄来的代码
a3 = 1 # 初始化一个值,在你这段码也可以不要。
a3 = a1 + a2 #后面这里直接赋值就可以了
a3 = a1 + a2
a1 = a2
a2 = a3
把a1跟a2的数据进行对换而已。
n -= 1 等于 n=n-1 , 假如n=100 就是从100倒数数到0. 计数用 方塘半亩 发表于 2018-12-20 22:31
从书上抄来的代码
亲,表示看不懂你写的这个 这个是迭代的算法,如果没有n-=1,那你不是在循环里出不来了吗
a3等于几都可以,反正a3后面都是要重新赋值的
因为当n=1,n=2时,返回的值为 a3 所以 a3=1
n-=1计算重第二个月起过了几个月,当n-2<=0时跳出循环
页:
[1]