连接列表中的整数并打印它,而无需使用python for循环

时间:2019-06-26 12:58:51

标签: python

我很好地解决了这个挑战性问题:

enter image description here

我以为我很聪明地分两行(他们给你第一行),但是它不起作用,因为我使用2 for循环。

for i in range(1,int(input())): #More than 2 lines will result in 0 score. Do not leave a blank line also
    [print(([i]*i)[index],end = "\n" if index == (len([i] * i)-1) else '') for index,x in enumerate([i] * i)] 

我必须勇敢地承认失败,但是对如何在两行中做到这一点很感兴趣,而且只有一个for循环...

5 个答案:

答案 0 :(得分:3)

根据this answer,它被称为“几何级数之和”;经过更多搜索之后,这种数字/序列似乎被称为Smarandache Sequence的一种。

您可以尝试以下方法:

for i in range(1, int(input())):
    print(int(i * ((10**i) - 1) / 9))

这是一个令人困惑的班轮,但似乎可行。

答案 1 :(得分:1)

for i in range(1, int(input('Number of iterations: '))):
    print(str(i)*i)

示例输出:

>>> for i in range(1, int(input('Number of iterations: '))):
        print(str(i)*i)

Number of iterations: 10
1
22
333
4444
55555
666666
7777777
88888888
999999999

答案 2 :(得分:1)

这也是可以接受的

for i in range(1, input()):
print(((10 ** i - 1) // 9) * i)

答案 3 :(得分:0)

这可以接受吗?

a = 9
print(*[str(i)*i for i in range(1, a)], sep='\n')

1
22
333
4444
55555
666666
7777777
88888888

答案 4 :(得分:0)

for i in range(1, int(input('Number of iterations: '))):
    print i * sum([pow(10, j) for j in range(i)])

内部for不是循环,而是列表理解。