📅  最后修改于: 2023-12-03 15:28:41.525000             🧑  作者: Mango
考虑下面提供的程序片段。
def f(n):
if n<=0:
return;
else:
print("*");
f(n-2);
f(n-2);
print("#")
f(6);
下面是程序的输出:
*
*
#
*
*
#
#
*
*
#
#
#
给出执行 f(8) 的输出。
给出的程序递归地调用了自己两次,每调用一次,就会打印一个 '*'。直到 n <= 0,返回。
因此,当 n = 6 时,程序的输出为:
*
*
#
*
*
#
#
*
*
#
#
#
当 n = 8 时,每次递归会使 n 减少 2,因此调用两次 f(n-2) 后,打印出 '#' 的个数会比打印出 '*' 的个数多 1。所以 f(8) 的输出为:
*
*
#
*
*
#
#
*
*
#
#
#
#
*
*
#
*
*
#
#
*
*
#
#
#
#
#
#
def f(n):
if n <= 0:
return
else:
print("*")
f(n-2)
f(n-2)
print("#")
f(8)