Попробуйте позвонить self.jumpFloor()
вместо простого jumpFloor()
(и убедитесь, что ваш отступ правильный):
class Solution:
def jumpFloor(self, number):
if 1 <= number <= 2:
return number
if number > 2:
return self.jumpFloor(number - 1) + self.jumpFloor(number - 2)
test = Solution()
for i in range(8):
print(test.jumpFloor(i))
Это работает для меня как в Python 2, так и в Python 3. Рекурсивная подпрограмма кажется неполной, поскольку она не обрабатывает 0 (по крайней мере), не говоря уже о том, чтобы отфильтровывать отрицательные числа.