|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# p6_7.py
def fab(n):
a1 = 1
a2 = 1
a3 = 1
if n < 1:
print('输入有误!')
return -1
while (n -2 ) > 0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a3
result = fab(12)
if result != -1:
print('总共有%d 对小兔崽子诞生!' % result)
请教:我根据数值的变化,推导出假设n为2时,while条件为假,这时跳出循环直接返回a3的原值(a3=1);假设n为3时,a3=a1+a2,即a3=1+1,a3为2;假设n为4时,a3=a1+a2(这个a2为上一轮的a3),即a3=1+2,a3为3;假设n为5时,a3=a1(这个a1为上一轮的a2,也是上上一轮的a3)+a2(上一轮的a3),即a3=2+3,a3为5;以此类推到n为12时,a3为144。
但是while循环是从12开始的,12,11(12-1),10(11-1),。。。一直到2的,第一轮n=12的时候,又哪里来n=11的a1、a2、a3的值的?还是我之前的推导是错误的?请各位大神,不吝赐教,谢谢!!!
推导并无问题
当进入while循环后,
当n=12的时候,a1,a2及a3的值是从1,1,2
之后n=11,a1,a2,a3的值更新为1,2,3
之后n=10,a1,a2,a3的值更新为2,3,5
...
最后n=2,跳出循环
|
|