gpt4 book ai didi

python - 使用python递归打印星号

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:31 24 4
gpt4 key购买 nike

我正在研究 python 中的递归,尝试在给出用户输入时使用表单中的递归打印星号,例如:3 程序应输出:

***
**
*
**
***

当用户输入为 3 时,我已经设法打印如下输出:

***
**
*

当调用 printPatternRecur 时,它会打印我目前管理的输出

def printPattern(n):
# Base case
if (n < 1):
return

print('*', end = " ")
printPattern(n - 1)

def printPatternRecur(n):
# Base case
if (n < 1):
return

printPattern(n)

print("")
printPatternRecur(n - 1)

预期的输出应该像一开始提到的那样递归调用。对于使用递归解决此问题的更简单方法的任何建议也表示赞赏。也很想知道在处理递归问题时如何克服思维过程,或者任何人认为有助于理解递归概念 的文章。谢谢!

最佳答案

你可以这样做,例如:

>>> def pattern(n):
... if n == 1:
... return print("*")
... print("*" * n)
... pattern(n - 1)
... print("*" * n)
...
>>> pattern(5)
*****
****
***
**
*
**
***
****
*****

您还可以使用递归打印函数代替 print("*"* n)

思考过程可以是这样的:在每次递归调用中,您都会下降一个层次,而当您从递归调用中返回时,您会上升一个层次。如果逆时针旋转 90 度,您还可以在输出中看到这个 V 形模式:您越来越深入递归,然后达到基本情况,然后开始上升直到退出第一次通话的时间。

关于python - 使用python递归打印星号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57366181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com