'''古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
'''
#方法一:循环赋值
'''
a=1
b=1
print(a,b,end=',')
for i in range(10):
c=a+b
a=b
b=c
print(c,end=',')
'''
#方法二:列表
'''list=[1,1]
for i in range(10):
list.append(list[i]+list[i+1])
print(list)
'''
#函数实现,
'''
def rab(n):
rabs=[1,1]
if(n==1):
return rabs[0]
elif(n==2):
return rabs[:2]
for i in range(n):
rabs.append(rabs[-1]+rabs[-2])
return rabs
print(rab(10))
'''
#递归实现
def rab(n):
if(n==1 or n==2):
return 1
else:
return rab(n-1)+rab(n-2)
print(rab(10))
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
'''
#方法一:循环赋值
'''
a=1
b=1
print(a,b,end=',')
for i in range(10):
c=a+b
a=b
b=c
print(c,end=',')
'''
#方法二:列表
'''list=[1,1]
for i in range(10):
list.append(list[i]+list[i+1])
print(list)
'''
#函数实现,
'''
def rab(n):
rabs=[1,1]
if(n==1):
return rabs[0]
elif(n==2):
return rabs[:2]
for i in range(n):
rabs.append(rabs[-1]+rabs[-2])
return rabs
print(rab(10))
'''
#递归实现
def rab(n):
if(n==1 or n==2):
return 1
else:
return rab(n-1)+rab(n-2)
print(rab(10))