Python三角形任务,打印内的算术运算

Python三角形任务,打印内的算术运算,python,Python,我试着解决这个问题 我知道,我可以这样做 for i in range(1,input()): print int(str(i)*i) 它可以工作,但我不能使用字符串,所以我有办法 那样 for i in range(1,input()): sum+=10**i print i*((1+sum)%10**i) 但它不起作用,并且有超过2行:(有人知道如何解决这个问题吗?一般来说,我知道如何用数学来解决这个问题,但我不知道如何用python来解决这个问题(不使用

我试着解决这个问题 我知道,我可以这样做

for i in range(1,input()): 
    print int(str(i)*i)
它可以工作,但我不能使用字符串,所以我有办法 那样

for i in range(1,input()): 
    sum+=10**i
    print i*((1+sum)%10**i) 


但它不起作用,并且有超过2行:(有人知道如何解决这个问题吗?一般来说,我知道如何用数学来解决这个问题,但我不知道如何用python来解决这个问题(不使用字符串,并且只写2行)

这里有一个公式可以帮助你解决这个问题“”。从维基百科页面上取第i个Repunit的等式,用10 in代替b(基数10),我们得到等式
(10**i-1)/(10-1)
(10**i-1)/9
。这将导致以下顺序:
1,11,111,1111…
。乘以i,我们得到了期望的结果:

>>> for i in range(1,input()):
...    print i * (10**i - 1) / 9
5<Enter>
1 
22
333
4444
范围(1,input())中的i的
>:
…打印i*(10**i-1)/9
5.
1.
22
333
4444
我试着这样做(注意我在这里进行了分组):

对于输入5,它产生:

1
22
333
4444

好的,我有解决方案。只需打印i*((11111)%10**i)就可以了,这只适用于n@Rarez,你愿意解释一下它是如何工作的吗?
for i in range(1,int(input())):
    print(i*((10**i)//9))
1
22
333
4444