题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
方法1
# -*- coding:utf-8 -*-
f1 = 1
f2 = 1
for i in range(1, 22):
print '%12ld %12ld ' % (f1, f2),
if (i % 3) == 0:
print ''
f1 = f1 + f2
f2 = f1 + f2
方法2
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n - 1) + fib(n - 2)
n = int(raw_input("第几个月:"))
print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print "第%d个月的兔子数为:%d 对" % (n, fib(n))
print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
方法2中打印出了程序运行的时间,以输出第36个月的兔子数目为例,运行结果如下:
第几个月:36
2017-09-24 19:59:38
第36个月的兔子数为:14930352 对
2017-09-24 19:59:42
由结果可看出,程序运行花费的时间为4秒,应该算是非常慢了。