使用递归Python的星三角形

时间:2015-04-13 21:37:25

标签: python recursion

所以我有一个递归写一些简单函数的赋值。其中之一是根据输入的高度制作一个三角形的星星。例如:

明星(5)

将打印出来:

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

并且这个功能可以很好地完成。

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

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

5 个答案:

答案 0 :(得分:3)

我会这样做:

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

recurse_triangle(5, '*')

输出:

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

答案 1 :(得分:2)

这个以升序和降序形式打印的怎么样?

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)

输出:

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

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

最初使用所需的高度调用它,使用0表示星号。

 def stars(height, x):
        if x < height:
           return
        else:
           print ('*' * x)
           stars(height, x + 1)

答案 4 :(得分:0)

这是递归调用它的方法之一。

def stars(height, sub=0):
    if sub < height:
        print "*"*(height-(height-1)+sub)
        stars(height, sub+1)

stars(5)

结果:

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