有个有趣的古典数学问题:一对刚出生的兔子,从第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假设兔子都不死,请问30个月内每个月的兔子总对数为多少?
经过分析,发现每个月的兔子总数依次为:1,1,2,3,5,8,13...这样的序列,总结规律就是前两个月的兔子对数相加就是下个月的兔子对数。
所以这就是一个典型的迭代循环。下面直接上代码:
###################
if __name__=="__main__":
tz1 = 1 #第一个月的兔子对数
tz2 = 1 #第二个月的兔子对数
i = 3
print("%6d %6d" %(tz1, tz2), end=" ")
while i <= 30:
tz = tz1 + tz2 # 求当前月份的兔子对数
print("%6d" %tz, end=" ") # 输出当前月份的兔子对数
if i % 10 == 0:# 每行输出10个结果
print()
tz2 = tz1 # 为下一次迭代做准备,求出新的tz2
tz1 = tz # 求出新的tz1
i += 1
###################
执行结果如下:
1 1 2 3 5 8 13 21 34 55
89 144 233 377 610 987 1597 2584 4181 6765
10946 17711 28657 46368 75025 121393 196418 317811 514229 832040
________________END______________
网友评论