我需要在调用myst(n)函数时确定其顺序,然后才能给出myst(4)的输出。 该函数定义如下:
def myst(n):
if n > 1:
myst(n - 1)
for i in range(n):
print(n, end='')
print()
myst(4)
OUTPUT
22
333
4444
但是我不明白为什么myst(4)会给出此输出,因此对序列有误解。
答案 0 :(得分:1)
在您的问题中,您要在打印之前进行递归,呼叫顺序将为
myst(2) -> myst(3) -> myst(4)
但是,如果您先打印然后递归,则呼叫顺序将更改为
myst(4) -> myst(3) -> myst(2)
,如下所示。
def myst(n):
if n > 1:
for i in range(n):
print(n, end='')
print()
myst(n - 1)
myst(4)
#4444
#333
#22
答案 1 :(得分:0)
当您致电myst(x)
时,首先要开始致电myst(x-1)
,结束后您将继续myst(x)
。因此,您将其称为myst(2),然后开始处理另一个myst
。如果要先打印,则应将递归调用移到底部:
def myst(n):
if n > 1:
for i in range(n):
print(n, end='')
print()
myst(n - 1)
myst(4)
4444
333
22