弗洛伊德三角形与数学,而不是字符串



我正在寻找一个挑战,仅使用算术运算符和单个for循环建立一个弗洛伊德三角形的整数。有数百个教程使用双for循环和字符串操作,但我还没有看到任何使用数学的。

使用重复整数的示例输出:

1
22
333
4444

我正在接近解决方案逻辑如下:

1 * (1) = 1
2 * (1 + 10) = 22
3 * (1 + 10 + 100) = 333

作为一个Python初学者,我不会构造逻辑循环。有什么想法或替代方法吗?这里不允许字符串操作,只允许数学!

这对我有用:)

n = 4
val=0
for i in range(n):
val+=10**i
print(val*(i+1))

Val是1,然后是11,然后是111。我不确定这是否是你所期望的。