Oliver Eyton-Williams ee1e8abd87
feat(curriculum): restore seed + solution to Chinese (#40683)
* feat(tools): add seed/solution restore script

* chore(curriculum): remove empty sections' markers

* chore(curriculum): add seed + solution to Chinese

* chore: remove old formatter

* fix: update getChallenges

parse translated challenges separately, without reference to the source

* chore(curriculum): add dashedName to English

* chore(curriculum): add dashedName to Chinese

* refactor: remove unused challenge property 'name'

* fix: relax dashedName requirement

* fix: stray tag

Remove stray `pre` tag from challenge file.

Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>

Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
2021-01-12 19:31:00 -07:00

1.3 KiB
Raw Blame History

id, title, challengeType, videoUrl, dashedName
id title challengeType videoUrl dashedName
5900f3721000cf542c50fe85 问题6求和方差 5 problem-6-sum-square-difference

--description--

前十个自然数的平方和是,

1

2

  • 2

2

  • ... + 10

2

= 385

前十个自然数之和的平方是,

1 + 2 + ... + 10

2

= 55

2

= 3025

因此前十个自然数的平方和与和的平方之间的差值为3025 - 385 = 2640.求出前n自然数的平方和与总和的平方之间的差值。

--hints--

sumSquareDifference(10)应该返回2640。

assert.strictEqual(sumSquareDifference(10), 2640);

sumSquareDifference(20)应该返回41230。

assert.strictEqual(sumSquareDifference(20), 41230);

sumSquareDifference(100)应该返回25164150。

assert.strictEqual(sumSquareDifference(100), 25164150);

--seed--

--seed-contents--

function sumSquareDifference(n) {

  return true;
}

sumSquareDifference(100);

--solutions--

const sumSquareDifference = (number)=>{
  let squareOfSum = Math.pow(sumOfArithmeticSeries(1,1,number),2);
  let sumOfSquare = sumOfSquareOfNumbers(number);
 return squareOfSum - sumOfSquare;
}

function sumOfArithmeticSeries(a,d,n){
  return (n/2)*(2*a+(n-1)*d);
}

function sumOfSquareOfNumbers(n){
 return (n*(n+1)*(2*n+1))/6;
}