使用循环解决斐波那契数列Fibonacci sequence

 1 # encoding:utf-8
 2 '''
 3 Created on 2017年8月7日
 4 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
 5 小兔子长到第三个月后每个月又生一对兔子,
 6 假如兔子都不死,问每个月的兔子总数为多少?
 7 知识链接:
 8     1、在使用函数传递变量时不要同全局变量的名称一样
 9     2、全局变量在函数中使用时,需要用 global声明
10 @author: wangtaoyuan
11 '''
12 new = 1#刚出生的小兔子对数
13 one = 0#一个月大的兔子对数
14 old = 0#两个月及以上的兔子,成熟兔子对数
15 i = 0
16 m = input('please input a inter of months:')
17 print '                                   ',old + new + one#初始兔子的总数
18 def growup( newl, onel, oldl):
19     global new, old, one, two
20     old = oldl + onel#1个月大的兔子成长为成熟兔子
21     print 'old:',old
22     one = newl #刚出生的兔子成长为一个月大的兔子
23     print 'one:', one
24     new = 0 
25 def breed(oldl):
26     global new
27     new = old #一对成熟兔子可以下一对刚出生的小兔子
28     print 'new:', new
29 while i < m:
30     print i+1,'个月后:' 
31     growup(new, one, old)#成长1个月
32     breed(old)#成熟的兔子生小兔子
33     i += 1
34     
35     print '                                   ',old + new + one#兔子的总数

 

posted @ 2017-08-07 18:47  wangtaoyuan  阅读(247)  评论(0编辑  收藏  举报