freeCodeCamp/curriculum/challenges/chinese/08-coding-interview-prep/project-euler/problem-156-counting-digits...

1.6 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f4091000cf542c50ff1b 5 Problem 156: Counting Digits

Description

从零开始自然数字在基数10中写下如下所示

0 1 2 3 4 5 6 7 8 9 10 11 12 ....

考虑数字d = 1。在我们写下每个数字n后我们将更新已发生的数字并将此数字称为fn1。那么fn1的第一个值如下

nfn100 11 21 31 41 51 61 71 81 91 102 114 125

请注意fn1永远不等于3。

因此等式fn1= n的前两个解是n = 0并且n = 1。下一个解决方案是n = 199981。以相同的方式函数fnd给出在写入数字n之后已经写下的总位数d。

实际上对于每个数字d≠0,0是方程fnd= n的第一个解。设sd是fnd= n的所有解的总和。

你得到s1= 22786974071。找到Σsd的1≤d≤9。注意如果对于某些n对于多于一个d的值fnd= n对于d的每个值再次计算n的这个值。 FNd= N。

Instructions

Tests

tests:
  - text: ''
    testString: 'assert.strictEqual(euler156(), 21295121502550, "<code>euler156()</code> should return 21295121502550.");'

Challenge Seed

function euler156() {
  // Good luck!
  return true;
}

euler156();

Solution

// solution required