需要帮助创建一个 9 列的下降半金字塔。第一列必须数 1-9。然后对于每一行,他们应该继续以起始倍数计数。请提供任何帮助。for num in range(10): for i in range(num): print (num, end=" ") print("\n")>Current output12 23 3 34 4 4 45 5 5 5 56 6 6 6 6 67 7 7 7 7 7 78 8 8 8 8 8 8 89 9 9 9 9 9 9 9 9>I need it to output as:12 43 6 94 8 12 165 10 15 20 256 12 18 24 30 367 14 21 28 27 35 428 16 24 32 40 48 56 649 18 27 36 45 54 63 72 81
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
你的内部循环错了。考虑到外循环代表行号,内循环应该从行号开始,每次按行号递增,直到行号的平方:
for num in range(1, 10):
for i in range(num, num*num+1, num):
print(i, end=" ")
print("\n")
# 1
# 2 4
# 3 6 9
# 4 8 12 16
# 5 10 15 20 25
# 6 12 18 24 30 36
# 7 14 21 28 35 42 49
# 8 16 24 32 40 48 56 64
# 9 18 27 36 45 54 63 72 81
料青山看我应如是
TA贡献1772条经验 获得超8个赞
你快到了!只是一些小的调整:
for mul in range(1, 10):
for i in range(1, mul+1):
print (i * mul, end=" ")
print("\n")
你需要打印的是i * mul;以及range开始1和停止的需要(即之前的一个)mul+1。
更紧凑和整齐地对齐:
for mul in range(1, 10):
print(' '.join(f'{mul*i:2d}' for i in range(1, mul+1)))
这输出:
1
2 4
3 6 9
4 8 12 16
...
9 18 27 36 45 54 63 72 81
添加回答
举报
0/150
提交
取消