TypeError in python - missing 1 required positional argument

后端 未结 3 1439
遥遥无期
遥遥无期 2021-01-28 09:31

I\'m stuck here. For n = 5 and k = 3, the answer should be 19. If I set k = 3 separately as a local or global variable and ru

3条回答
  •  日久生厌
    2021-01-28 09:58

    Several solutions, the simplest is:

    def wabbits(n, k):
        if n == 1:
            return 1
        elif n == 2:
            return 1
        return wabbits(n-2, k)*k + wabbits(n-1, k)
    
    r = wabbits(5, 3)
    

    However you could encapsulate k using an inner function:

    def wabbits(n, k):
    
        def bunnies(rn):
            if rn == 1:
                return 1
            elif rn == 2:
                return 1
            return bunnies(rn-2)*k + bunnies(rn-1)
    
        return bunnies(n)
    
    r = wabbits(5, 3)
    

提交回复
热议问题