← 完整题目索引

PROJECT EULER · #0156

数位计数

Counting Digits

仅题目 · 已解决原题 ↗

从零开始,自然数以 10 为基数写下,如下所示:
0123456789101112

考虑数字d=1。当我们记下每个数字 n 后,我们将更新已经发生的数字,并将这个数字称为 f(n,1)f(n,1) 的第一个值如下:

nf(n,1)00112131415161718191102114125

请注意,f(n,1) 永远不等于 3
因此方程 f(n,1)=n 的前两个解是 n=0n=1。下一个解决方案是 n=199981

以同样的方式,函数 f(n,d) 给出在写入数字 n 后已写入的位数 d 的总数。
事实上,对于每个数字 d00 是方程 f(n,d)=n 的第一个解。

s(d)f(n,d)=n 的所有解的总和。
已知 s(1)=22786974071

s(d)1d9

注意:如果对于某些 nf(n,d)=n 对于多个 d 值,则对于 f(n,d)=n 的每个 d 值,都会再次计算 n 的值。

题解待补充

这道题的题目已收录,解题思路、代码和答案将在后续补充。