J'essaie d'utiliser la récursivité de la queue ici et j'obtiens une erreur : le nom 'tribonacci' n'est pas défini

class Solution:
    def tribonacci(self, n: int) -> int:
        if (n <= 0):
            return 0
        elif (n == 1):
            return 1
        else:
            return tribonacci(n) + tribonacci(n - 1) + tribonacci(n - 2)
n=Solution()
print(n.tribonacci(4))
-2
asd 14 nov. 2020 à 01:53

1 réponse

Meilleure réponse

Utilisez le mot-clé self et j'ai également résolu une erreur logique

import functools
class Solution:
    @functools.lru_cache(None) #memoization to avoid TLE on large input
    def tribonacci(self, n: int) -> int:
        if (n <= 0): #for -ve input
            return 0
        elif n in [1, 2]:
            return 1
        else:
            return self.tribonacci(n - 1) + self.tribonacci(n - 2) + self.tribonacci(n - 3)
sol = Solution()
print(sol.tribonacci(4))
2
ssp4all 14 nov. 2020 à 18:32