我正在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)
预期的输出应该递归地调用,如开头所述。对于使用递归解决此问题的更简单方法的任何建议也将受到赞赏。还想知道如何克服思维过程,同时与递归问题或任何文章任何人发现有助于理解概念的递归。谢谢您!你知道吗
可以使用外包装函数:
输出:
您可以这样做,例如:
也可以使用递归打印函数代替
print("*" * n)
。你知道吗思考的过程可以是这样的:每次递归调用都会让你更深一层,而当你从递归调用中恢复过来时,你会上升一层。如果将其逆时针旋转90度,也可以在输出中看到这种
V
形状的模式:您在递归中越走越深,然后触及基本大小写,然后开始升序,直到第一次调用结束。你知道吗这里有一个小的变化,为了一个更简单的答案。“诀窍”是知道调用递归的位置:在
print
语句之间。当EME>退出时:当我们到达^ {< CD2> }(或小于^ {< CD2> },如果我们要小心),但不要在打印最后一个孤独星号中间。你知道吗它工作正常:
相关问题 更多 >
编程相关推荐