其他分享
首页 > 其他分享> > 斐波拉切三种求法

斐波拉切三种求法

作者:互联网

# 暴力求解
def func1(num: int):
if num < 2:
return num
return func1(num - 1) + func1(num - 2)


# 去重队列


def recurse(li: list, num: int):
if num == 0:
return 0
if num == 1:
return 1
if li[num] != 0:
return li[num]
li[num] = recurse(li, num - 1) + recurse(li, num - 2)
return li[num]


def func2(num: int):
li = [0 for _ in range(num + 1)]
return recurse(li, num)

# 双指针
def func3(num:int):
pre1 = 0
pre2 = 1
res = 0
for i in range(0,num-1): # 少循环2次:0,1
res = pre1 + pre2
pre1 = pre2
pre2 = res
return res


print(func1(3))
print(func2(3))
print(func3(3))

标签:func1,return,int,recurse,波拉,li,求法,num,三种
来源: https://www.cnblogs.com/bigcoolcool/p/16269540.html