📅  最后修改于: 2023-12-03 14:56:54.882000             🧑  作者: Mango
对于给定的矩形框,可以构建出一座金字塔。金字塔的高度表示为整数h,金字塔的逐层递减,第一层有h个正方形,第二层有h-2个正方形,第三层有h-4个正方形…… 直至最后一层只剩下一个正方形。其中,每一层中的正方形都是紧密地接在一起的。下面是一个金字塔高度为3的例子:
___
/ \
| |
\___/
def print_pyramid(height):
for i in range(height, 0, -2):
# 打印每层金字塔的空格
print(" " * ((height - i) // 2), end="")
# 打印每层金字塔的边框
print("/", end="")
print(" " * (i - 2), end="")
print("\\", end="")
# 换行
print()
# 打印金字塔最后一层的边框
print("/" + "_" * (height - 2) + "\\")
只需调用print_pyramid函数并传入金字塔的高度即可。
print_pyramid(3)
这将输出如下结果:
___
/ \
| |
\___/
金字塔高度为h的实现方式就是从h开始倒序遍历,每次打印出一层金字塔的的空格和边框即可。这个算法的时间复杂度为O(h),不管h是多少,都不会影响算法的性能。