gpt4 book ai didi

python-3.x - 在 Python 中编写递归函数

转载 作者:行者123 更新时间:2023-12-04 14:41:52 26 4
gpt4 key购买 nike

假设一个名为 printStars 的函数可用,该函数可以传递一个包含非负整数值的参数。该函数打印出给定数量的星号。

编写一个名为 printTriangle 的函数,它接收一个包含非负整数值的参数,并按如下方式打印一个星号三角形:首先是一行 n 个星号,然后是一行 n-1 个问号,然后是一行n-2 个星号,依此类推。

例如,如果函数接收到 5,它将打印

*****
****
***
**
*

该函数不得使用任何类型的循环(for、while、do-while)来完成其工作。该函数应调用 printStars 来完成打印单行的任务。

我相信我已经制定了基本案例。这是我的代码:

def printTriangle(n):
if n == 1:
printStars(n)

我需要一些帮助来计算递归步骤。我认为它使用 n-1 作为参数,但我不确定如何正确调用 printTriangle 函数。提前致谢。

最佳答案

让我们以 n=5 为例。一个 5 行三角形

*****    # 5 stars ...
**** # ...followed by a 4-row triangle
***
**
*

只是一排 5 颗星,可使用 printStars(5) 打印,后跟一个 4 行三角形,可使用 printTriangle(4) 打印。类似地,4 行三角形只是一排 4 颗星后面跟着一个 3 行三角形。一般来说,n 行三角形只是一行 n 星,后面跟着一个 n-1 行三角形。正如一位老大学教授曾经告诉我们的那样,“相信你的递归”,他的意思是,在编写 printTriangle 时,假设 printTriangle 会正确工作并在你使用它时使用它能。您通过使用 printStars(n) 打印一行 n 星星来打印 n 行三角形,然后是 n-1 -带有 printTriangle(n-1) 的行三角形。这意味着基本情况更简单:对于 n=0,什么都不做!否则,打印一行 n 星,然后在后面的较小三角形上递归。

def printTriangle(n):
if n == 0:
# Base case
return
else:
# Recursive case
printStars(n)
printTriangle(n-1)

关于python-3.x - 在 Python 中编写递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26787811/

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