将正整数连接起来可以得到一个无理小数:
0.123456789101112131415161718192021…
可以看出小数部分的第12位是1。
如果用dn表示这个数小数部分的第n位,找出如下表达式的值:
d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000
n_list = [10 ** i for i in range(7)]
dn_prod = 1
digit = 1
n_digit = 9
for n in n_list:
while n > n_digit:
digit += 1
n_digit += 9 * 10 ** (digit - 1) * digit
n_d = n_digit - n
n_num = n_d // digit
num = 10 ** digit - 1 - n_num
num_n = n_d % digit
while num_n:
num //= 10
num_n -= 1
dn = num % 10
dn_prod *= dn
print(dn_prod)