1

文字列の特定の要素(インデックス値+ 1がNにある)の積を計算したいだけです。

これは正常に機能します。

start = 1
end = 1000000
N = (1, 10, 100, 1000, 10000, 100000, 1000000) 
product = 1

concatenated_numbers_str = ''.join([str(x) for x in range(1, end + 1)])

for n in N:
    product *= int(concatenated_numbers_str[n - 1])
print(product)

しかし、これを行うためのより良い方法は何ですか?

ありがとうございました

4

1 に答える 1

0

Pavelの答えは好きですが、nではなくn-1にする必要があります。

import operator
end = 1000000
N = (1, 10, 100, 1000, 10000, 100000, 1000000)
concatenated_numbers_str = ''.join([str(x) for x in range(1, end + 1)])
print reduce(operator.mul, [int(concatenated_numbers_str[n-1]) for n in N], 1)
于 2012-05-15T16:12:48.163 に答える