需要特定递归函数的示例

时间:2018-10-31 18:43:18

标签: recursion

我需要一个具有这种函数调用例程的程序或过程的示例。

f1() call f2()
f2() call f3()
f3() call f1()

此过程将进行某种递归,我想知道是否有任何程序在其构建中使用此方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果只希望某些函数一个接一个地调用其他函数,则在执行结束时调用下一个函数。尽管如果不需要每个函数向下传递信息,最好在外部调用它们的同时使用while循环单独调用它们。

下面是Python中演示调用的代码:

def f1():
    # Sample base case based on input
    if (input("Enter x to stop: ") == 'x'):
        return

    # Do something
    f2()  # Calls f2

def f2():
    # Do something
    f3()  # Calls f3

def f3():
    # Do something
    f1() # Repeats the pattern recursively

f1() # starts pattern

但是,每个递归调用都必须存储到内存中,并且可能导致堆栈溢出。因此,最好这样进行一次交互式调用:

def f1():
    # Do something

def f2():
    # Do something

def f3():
    # Do something

# Repeats pattern calling each function
while True:
    # Sample base case based on input
    if (input("Enter x to stop: ") == 'x'):
        break

    f1()
    f2()
    f3()