兔子繁殖问题的多种解法探讨

我能想到三种解法,还有更多的解法吗?希望同学们踊跃参与讨论
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 条评论

  • @ 2019-04-26 01:36:00

    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))

  • @ 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
分类
(无)
标签
(无)
递交数
249
已通过
105
通过率
42%
被复制
1
上传者