- 兔子繁殖问题
- @ 2019-04-26 01:24:38
我能想到三种解法,还有更多的解法吗?希望同学们踊跃参与讨论
1、使用循环
2、使用列表
3、使用递归
三种解法的源代码如下:
1、使用循环
def fib(n):
x,y=0,1
while(n):
x,y,n=y,x+y,n-1
print(x)
return x
fib(10)
2、使用列表
n=int(input())
list=[1,1]
for i in range(n-2):
d=list[i]+list[i+1]
list.append(d)
print(list[n-1])
3、使用递归方法
def fab(x):
if x==1:
return 1
elif x==2:
return 1
elif x>2:
result=fab(x-1)+fab(x-2)
return result
elif x<0:
print ("输入有误,请重新输入!")
number=int(input("请输入斐波拉契数列的项数:"))
result=fab(number)
print("第 %d项斐波拉契数列为:%d"%(number,result))
3 条评论
- 
  王枫璟 LV 8 @ 2019-04-26 01:36:003、使用递归方法 
 def fab(x):
 if x==1:
 return 1elif x==2: 
 return 1
 elif x>2:
 result=fab(x-1)+fab(x-2)
 return result
 elif x<0:
 print ("输入有误,请重新输入!")
 number=int(input("请输入斐波拉契数列的项数:"))
 result=fab(number)
 print("第 %d项斐波拉契数列为:%d"%(number,result))
- 
  @ 2019-04-26 01:34:312、使用列表 
 n=int(input())
 list=[1,1]
 for i in range(n-2):
 d=list[i]+list[i+1]
 list.append(d)
 print(list)
- 
  @ 2019-04-26 01:33:573、使用递归方法 
 def fab(x):
 if x==1:
 return 1
 elif x==2:
 return 1
 elif x>2:
 result=fab(x-1)+fab(x-2)
 return result
 elif x<0:
 print ("输入有误,请重新输入!")number=int(input("请输入斐波拉契数列的项数:")) 
 result=fab(number)
 print("第 %d项斐波拉契数列为:%d"%(number,result))
- 1
信息
- 难度
- 4
- 分类
- (无)
- 标签
- (无)
- 递交数
- 254
- 已通过
- 106
- 通过率
- 42%
- 被复制
- 1
- 上传者