重复执行函数“ x”次的递归

时间:2019-10-03 20:11:21

标签: python recursion

我需要通过递归重复函数“ x”的次数。我可以做到,但是每个输出都需要保留。

num是要调用的次数

def incr(n):
    print(n+1)
    return n+1

def foo(fn, num):
    def op(n):
        fn(n)
    print(num)
    if(num > 0):
        foo(fn, num-1)

    return op

f = foo(incr, 3)
f(5)

现在我得到6。预期结果是6,7,8

2 个答案:

答案 0 :(得分:0)

这是一种实现方法:

def incr(n):
    print(n+1)
    return n+1

def foo(fn, num):
    def op(n):
        if num > 0:
            n = fn(n)
            foo(fn, num-1)(n)
    return op

f = foo(incr, 3)
f(5)

答案 1 :(得分:0)

递归函数应自行调用,有关更多信息,请参见https://www.geeksforgeeks.org/recursive-functions/

我还添加了一个跟踪最终结果的参数。

def incr(n, num):
  if (n != num):
    print(n + 1)
    return incr(n + 1, num)

def foo(fn, num):
  def op(n):
    fn(n, n + num)
  return op

f = foo(incr, 3)
f(5)