一个不合理的小数部分是通过连接 正整数创建:的R - 项目欧拉40:得到最终的数字错了
0.12345678910 112131415161718192021 ...
可以看出,小数部分的第12位数字为1.
如果dn表示小数部分的第n位数字,请找到以下表达式的值 。
D1×D10××D100×D1000 D10000×d100000×d1000000
问题源here。
我写下面的代码来计算数字:
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位时,其最后三位数字是370,这意味着它的第1000位数字是3
。等等。
由此得出的答案是:1 * 1 * 5 * 3 * 7 * 2 * 。但是,正确的答案是1 * 1 * 5 * 3 * 7 * 2 * 。它只是胜过我,直到最后一位数字才能够产生正确的答案。