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

发布于 2021-01-29 16:17:14

我尝试解决这个问题, 我知道,我可以做到

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.

但这行不通,并且超过两行:(任何人都知道如何解决此问题?通常我知道如何数学解决此问题,但我不知道如何在python中做到这一点(不使用字符串并编写不超过2行)

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这里有用的是“
    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看