我需要通过递归重复函数“ 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
答案 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)