使用递归Python的星三角

2024-05-16 04:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个任务来递归地编写一些简单的函数。其中一个是根据输入的高度制作一个三角形的恒星。例如:

星星(5)

将打印出来:

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

这个函数在这个过程中运行得很好。

def stars(height):
    x = 1
    while x <= height:
        print ('*' * x)
        x += 1

我怎么能递归地写这个?任何帮助都非常感谢。


Tags: 函数高度过程defprintstarsheight三角形
3条回答

这个是升序还是降序打印呢?

def stars(n, descending=True):
    if (descending):
        print '*'*n

    if n==1:
        if not descending:
            print '*'
        return

    stars(n-1, descending)
    if not descending:
        print '*'*n

stars(5)
print
stars(5, descending=False)

输出:

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

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

我会这么做:

def recurse_triangle(num, char):
    if num > 0:
        recurse_triangle(num-1, char)
        print(char*num)

recurse_triangle(5, '*')

输出:

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

很简单,只要加一个直到达到高度。使用默认值并调用star(12)

def star(h, n = 1):
    if h == n:
        print n * '*'

    if h != n:
        print n * '*'
        star(h, n + 1)

相关问题 更多 >