Project Euler — Problem 40 Solution

Problem

An irra­tional dec­i­mal frac­tion is cre­at­ed by con­cate­nat­ing the pos­i­tive inte­gers:

0.123456789101112131415161718192021…

It can be seen that the 12th dig­it of the frac­tion­al part is 1.

If dn rep­re­sents the nth dig­it of the frac­tion­al part, find the val­ue of the fol­low­ing expres­sion.

d1 x d10 x d100 x d1000 x d10000 x d100000 x d1000000

Solution

A pretty straight forward solution, the only trick is to turn the sequence of natural numbers 1, 2, 3, … 11, 12, 13.. into a continuous sequence of individual numbers. I did so by taking each number and turning it into a string array of its digits (e.g. 11 –> {"1"; "1"}) and concatenating these arrays using Seq.collect.