Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-76-counting-summations.md
2022-01-20 20:30:18 +01:00

1.5 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f3b81000cf542c50fecb 問題 76: 和を数え上げる 5 302189 problem-76-counting-summations

--description--

5 を数の和として表す方法はちょうど 6 通りあります。

4 + 1
3 + 2
3 + 1 + 1
2 + 2 + 1
2 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1

n を 2 つ以上の正整数の和として表す方法は何通りありますか。

--hints--

countingSummations(5) は数値を返す必要があります。

assert(typeof countingSummations(5) === 'number');

countingSummations(5)6 を返す必要があります。

assert.strictEqual(countingSummations(5), 6);

countingSummations(20)626 を返す必要があります。

assert.strictEqual(countingSummations(20), 626);

countingSummations(50)204225 を返す必要があります。

assert.strictEqual(countingSummations(50), 204225);

countingSummations(100)190569291 を返す必要があります。

assert.strictEqual(countingSummations(100), 190569291);

--seed--

--seed-contents--

function countingSummations(n) {

  return true;
}

countingSummations(5);

--solutions--

function countingSummations(n) {
  const combinations = new Array(n + 1).fill(0);
  combinations[0] = 1;

  for (let i = 1; i < n; i++) {
    for (let j = i; j < n + 1; j++) {
      combinations[j] += combinations[j - i];
    }
  }
  return combinations[n];
}