📜  门| GATE-CS-2009 |问题 21(1)

📅  最后修改于: 2023-12-03 14:58:28.260000             🧑  作者: Mango

问题 21

本问题涉及在GATE-CS-2009年的计算机科学和信息技术课程中。

题目描述

考虑下面的函数:

def foo(n):
    if n <= 0:
        return
    print(n)
    foo(n-1)
    print(n)
  1. 当调用foo(3)时,输出结果是什么?

编写一个程序,使用递归的方式实现上述函数,并输出调用foo(3)时的结果。

解答

根据题目描述,函数foo(n)将打印从n1的数字,然后再从1打印到n

通过递归调用,在每次调用foo(n-1)之前打印n,然后再打印n

以下是使用Python编写的递归函数实现:

def foo(n):
    if n <= 0:
        return
    print(n)
    foo(n-1)
    print(n)

调用foo(3)时的输出结果为:

3
2
1
1
2
3

函数首先打印3,然后调用foo(3-1),继续打印21,然后再打印123

需要注意的是,递归函数需要设置递归终止条件,即n <= 0时返回。