- dalao们,最后两个点TLE了,请问我的代码还有什么可以优化的地方吗www
def fib(n, memo) -> int:
global M
if n in memo:
return memo[n]
elif n == 0:
return 0
elif n == 1:
return 1
elif n > 1:
memo[n] = (fib(n - 1, memo) + fib(n - 2, memo)) % M
return memo[n]
M = int(input())
n = 1
memo = {}
while True:
fib_n = fib(n, memo)
fib_n1 = fib(n + 1, memo)
if fib_n == 0 and fib_n1 % M == 1:
break
else:
n += 1
print(n)