使用递归Python的星形三角形
所以我有一个任务来递归地写一些简单的函数。其中之一是根据输入的高度制作一个三角形的星星。例如: 星星(5) 将打印:使用递归Python的星形三角形,python,recursion,Python,Recursion,所以我有一个任务来递归地写一些简单的函数。其中之一是根据输入的高度制作一个三角形的星星。例如: 星星(5) 将打印: * ** *** **** ***** 这个函数可以很好地实现这一点 def stars(height): x = 1 while x <= height: print ('*' * x) x += 1 def星形(高度): x=1 而x我会这么做: def recurse_triangle(num, char):
*
**
***
****
*****
这个函数可以很好地实现这一点
def stars(height):
x = 1
while x <= height:
print ('*' * x)
x += 1
def星形(高度):
x=1
而x我会这么做:
def recurse_triangle(num, char):
if num > 0:
recurse_triangle(num-1, char)
print(char*num)
recurse_triangle(5, '*')
输出:
*
**
***
****
*****
我会这样做:
def recurse_triangle(num, char):
if num > 0:
recurse_triangle(num-1, char)
print(char*num)
recurse_triangle(5, '*')
输出:
*
**
***
****
*****
这很简单,只需添加一个,直到达到高度。使用默认值并调用star(12)
这很简单,只需添加一个,直到达到高度。使用默认值并调用star(12)
最初用所需的高度和0表示星星数来调用它
def stars(height, x):
if x < height:
return
else:
print ('*' * x)
stars(height, x + 1)
def星形(高度x):
如果x<高度:
返回
其他:
打印('*'*x)
星星(高度,x+1)
首先用所需的高度调用它,用0表示星星数
def stars(height, x):
if x < height:
return
else:
print ('*' * x)
stars(height, x + 1)
def星形(高度x):
如果x<高度:
返回
其他:
打印('*'*x)
星星(高度,x+1)
这是递归调用它的方法之一
def stars(height, sub=0):
if sub < height:
print "*"*(height-(height-1)+sub)
stars(height, sub+1)
stars(5)
这是递归调用它的方法之一
def stars(height, sub=0):
if sub < height:
print "*"*(height-(height-1)+sub)
stars(height, sub+1)
stars(5)
这个用升序和降序打印怎么样
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 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)
输出:
是的,我也有同样的想法。用另一个值来限制高度。是的,我也有同样的想法。使用另一个值来限制高度。无论h
是否等于n
,您都在打印n*'*'
。你可以把它从if
语句中去掉,用一个if
语句调用star(h,n+1)
ifh
不等于n
。哦,是的,我的错。这是显而易见的,但你是对的。我以为您指的是用另一行替换该行而不改变顺序。您正在打印n*'*'
,而不管h
是否等于n
。你可以把它从if
语句中去掉,用一个if
语句调用star(h,n+1)
ifh
不等于n
。哦,是的,我的错。这是显而易见的,但你是对的。我以为您指的是将该行替换为另一行,而不改变顺序。您如何做到这一点,以便可以调用一次并获得完整的输出?例如
stars(5)
returns***************************您将如何执行此操作,以便可以调用它一次并获得完整的输出?例如
stars(5)
returns*****************