不合理な小数が 正の整数連結して作成されます。R - プロジェクトオイラー40:最後の桁が間違って取得
0.12345678910 112131415161718192021を...
これは、ことがわかります小数部の12桁目は1です。
dnが小数部のn番目の桁を表す場合は、次の式の値 を探します。 d1000000
問題の源here×
D1×D10×D100×D1000×d10000×d100000。
私は数字を計算するために、次のコードを書いた:
ans = data.frame(matrix(ncol = 6, nrow=2))
colnames(ans) = c(10,100,1000,10000,100000,1000000)
rownames(ans) = c("length","number")
counter = 1
for(i in c(10,100,1000,10000,100000,1000000))
{
c = 0
num = 0
while (c<i)
{
num = num + 1
c = c + nchar(as.character(num))
}
ans[1, counter] = c
ans[2, counter] = num
counter = counter + 1
}
出力される:すなわち
> ans
10 100 1000 10000 1e+05 1e+06
length 11 101 1002 10001 100004 1000004
number 10 55 370 2777 22222 185185
、無理数は11桁長く、その最終的な二桁である場合10
です。つまり、その第10桁は1
です。不合理な数字が1002桁の場合、最後の3桁は370です。つまり、1000番目の数字は3
です。等々。
これから私が得られる答えは、1 * 1 * 5 * 3 * 7 * 2 * です。ただし、正解は1 * 1 * 5 * 3 * 7 * 2 * です。それは最終的な桁まで正しい答えを生み出すことができる方法を私に打ち明けるだけです。