- 兔子繁殖问题
- 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:00
3、使用递归方法
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:31@
2、使用列表
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:57@
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))
- 1
信息
- 难度
- 4
- 分类
- (无)
- 标签
- (无)
- 递交数
- 254
- 已通过
- 106
- 通过率
- 42%
- 被复制
- 1
- 上传者