回答編集履歴

1

Lhankor_Mhyさんからの指摘内容を回答に反映しました。

2020/04/09 02:40

投稿

draq
draq

スコア2573

test CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  1からnまでの範囲の自然数の合計は`(n + 1) * n / 2`で求めることができます。
6
6
 
7
- つまり合計がlimit未満になる条件の場合、`(n + 1) * n / 2 < limit`を満たす最のnが欲しい値となります。
7
+ つまり合計がlimitを超える条件の場合、`limit < (n + 1) * n / 2`を満たす最のnが欲しい値となります。
8
8
 
9
- この数式を展開すると、`n^2 + n - 2 * limit < 0`となります。(^は乗と思ってください。)
9
+ この数式を展開すると、`0 < n^2 + n - 2 * limit`となります。(n^2nの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 + (8 * limit))) / 2);
27
+ const max = Math.floor((-1 + Math.sqrt(1 + 8 * limit)) / 2) + 1;
28
28
 
29
- console.log(max); // => 44
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); // => 990
35
+ console.log(sum); // => 1035
36
36
 
37
37
  ```