我很好地解决了这个挑战性问题:
我以为我很聪明地分两行(他们给你第一行),但是它不起作用,因为我使用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循环...
答案 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不是循环,而是列表理解。