📅  最后修改于: 2023-12-03 14:58:28.260000             🧑  作者: Mango
本问题涉及在GATE-CS-2009年的计算机科学和信息技术课程中。
考虑下面的函数:
def foo(n):
if n <= 0:
return
print(n)
foo(n-1)
print(n)
foo(3)
时,输出结果是什么?编写一个程序,使用递归的方式实现上述函数,并输出调用foo(3)
时的结果。
根据题目描述,函数foo(n)
将打印从n
到1
的数字,然后再从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)
,继续打印2
、1
,然后再打印1
、2
、3
。
需要注意的是,递归函数需要设置递归终止条件,即n <= 0
时返回。