回答編集履歴
1
Lhankor_Mhyさんからの指摘内容を回答に反映しました。
test
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
|
5
5
|
1からnまでの範囲の自然数の合計は`(n + 1) * n / 2`で求めることができます。
|
6
6
|
|
7
|
-
つまり合計がlimit
|
7
|
+
つまり合計がlimitを超える条件の場合、`limit < (n + 1) * n / 2`を満たす最小のnが欲しい値となります。
|
8
8
|
|
9
|
-
この数式を展開すると、`n^2 + n - 2 * limit
|
9
|
+
この数式を展開すると、`0 < n^2 + n - 2 * limit`となります。(n^2はnの2乗と思ってください。)
|
10
10
|
|
11
11
|
|
12
12
|
|
@@ -24,14 +24,14 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
const max = Math.floor((-1 + Math.sqrt(1 +
|
27
|
+
const max = Math.floor((-1 + Math.sqrt(1 + 8 * limit)) / 2) + 1;
|
28
28
|
|
29
|
-
console.log(max); // => 4
|
29
|
+
console.log(max); // => 45
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
const sum = (max + 1) * max / 2;
|
33
|
+
const sum = ((max + 1) * max) / 2;
|
34
34
|
|
35
|
-
console.log(sum); // =>
|
35
|
+
console.log(sum); // => 1035
|
36
36
|
|
37
37
|
```
|