所以我有一个递归写一些简单函数的赋值。其中之一是根据输入的高度制作一个三角形的星星。例如:
明星(5)
将打印出来:
*
**
***
****
*****
并且这个功能可以很好地完成。
def stars(height):
x = 1
while x <= height:
print ('*' * x)
x += 1
我怎么能递归写这个?非常感谢任何帮助。
答案 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)
结果:
*
**
***
****
*****