Project Euler – 問題40

小数点以下に整数を連結させていくことで、0.1234567891011121314…という 無理数を定義できる。

この少数の小数点以下12桁目の数は1である。

dnを小数点以下n桁目の数としたときに、次の式の値を求めよ。 d1 x d10 x d100 x d1000 x d10000 x d100000 x d1000000

無理数irrationalを問題の定義通りリストの連結で表す。そこで問題の桁数の 値を求め積を計算する。

euler040 = product [irrational !! (10 ^ n) | n <- [0..6]]
    where irrational = concat $ map intToList [0..]