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

时间:2015-05-19 21:10:19

标签: python

我尝试解决this problem 我知道,我可以这样做

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) 
for i=1   1*(1+10)%10, 

for i=2   2*((1+110)%100), 

for i=3   3*((1+1110)%1000) etc.

但它没有工作,并且有超过2行:(任何人都知道如何解决这个问题?一般我知道如何解决这个问题数学,但我不知道如何做到这一点python(不使用字符串,写入不超过2行)

3 个答案:

答案 0 :(得分:7)

这里有帮助的是“Repunit”的等式。从维基百科页面中取出第i个Repunit的等式,并用10代入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 :(得分:0)

这是代码

for i in range(1,int(input())+1): #More than 2 lines will result in 0 score. Do not leave a blank line also
    print(int(((10**i)-1)/9)**2)

输入:9
输出:12345678987654321

答案 2 :(得分:0)

我确实有两个逻辑代码,它们更倾向于编程语言实用程序而不是数学,但它不适用于您的“三角任务”@Hackerrank
代码 1:

for i in range(1,int(input())): 
    list(print(i,end="\n"*int(j/i)) for j in range(1,i+1))

代码2:
for i in range(1,int(input())):
    list(print(i,end="") if i!=j else print(i) for j in range(1,i+1))