1个回答
展开全部
金字塔算法:
CONST_ROW = 8
CONST_TAB = "\t"
lstRow = []
# /* 遍历打印的行数. */
for intRow in range(1, CONST_ROW + 1):
# /* 遍历打印的列数 (折半+1). */
for intCol in range(1, intRow + 1):
# /* 每次仅计算最后一个数并追加到列表末尾.
# 避免对中部之前的每一行每一列的重复数值计算,
# 一定程度上能提高执行效率. */
if intCol == intRow:
lstRow.append(2 ** (intCol - 1))
strOut = CONST_TAB * (CONST_ROW - intRow) + \
CONST_TAB.join(map(str, lstRow))
# /* 从第二行开始需要执行列表翻转 (补齐折半-1). */
if intRow > 1:
strOut = "%s%s%s" % (strOut,
CONST_TAB,
CONST_TAB.join(map(str, reversed(lstRow[:-1]))))
print(strOut)
输出:
其他两题建议自己思考,自己练习,这样才能提高!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询