gpt4 book ai didi

python - python中的递归数字三角形

转载 作者:行者123 更新时间:2023-12-01 05:44:33 24 4
gpt4 key购买 nike

我正在尝试创建一个如下所示的三角形:

1 2 3 4 5 6
2 3 4 5 6
3 4 5 6
4 5 6
5 6
6

不使用 while、for in、lists 等。只是“if-else”情况和递归函数。我刚刚学会了如何制作星号三角形。

def triangle(i, t=0):
if i == 0:
return ' '
else:
print '*' * i
return triangle( i - 1, t + 1 )

triangle(6)

它与我想应用于我的练习的想法相同,但我真的不知道如何处理逐个更改术语的代码并将它们全部打印到右侧,就像这样。

最佳答案

这是我的解决方案。请注意,既没有 range 也没有 join,这意味着 forlist

In [1]: def tri(size, row = 0, col = 0):
...: if row < size:
...: num = row + col + 1
...: if num == size + 1:
...: print '\n',
...: tri(size, row + 1, 0)
...: if num <= size:
...: print num, '',
...: tri(size, row, col + 1)
...:

In [2]: tri(6)
1 2 3 4 5 6
2 3 4 5 6
3 4 5 6
4 5 6
5 6
6

如果范围可以接受,那么这里是一个简短的:

def tri2(size):
row = map(str, range(1, size + 1))
print '\n'.join(map(lambda n: ' '.join(row[n:]), range(size)))

关于python - python中的递归数字三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16514977/

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