80分求助TAT,python实现,最后两点TLE
查看原帖
80分求助TAT,python实现,最后两点TLE
1044496
ZHAOHANGFEI1208楼主2025/1/16 16:04
  • dalao们,最后两个点TLE了,请问我的代码还有什么可以优化的地方吗www
# 优化模运算
# 在每次递归调用中进行模运算,可以减少数值的大小,避免大数运算带来的性能问题。

## 递归依旧存在TLE
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)
2025/1/16 16:04
加载中...