回答編集履歴
5
N \* \(N \+ 1\) / 2
    
        answer	
    CHANGED
    
    | @@ -27,7 +27,7 @@ | |
| 27 27 | 
             
            6 * (1 + 2 + 3);
         | 
| 28 28 | 
             
            ```
         | 
| 29 29 |  | 
| 30 | 
            -
            1からNまでの自然数の和は「` | 
| 30 | 
            +
            1からNまでの自然数の和は「`N * (N + 1) / 2`」で求められる事を利用します。
         | 
| 31 31 |  | 
| 32 32 | 
             
            ```JavaScript
         | 
| 33 33 | 
             
            var number = Math.floor(100/6);
         | 
4
\(N \* \(N \+ 1\)\) / 2
    
        answer	
    CHANGED
    
    | @@ -27,7 +27,7 @@ | |
| 27 27 | 
             
            6 * (1 + 2 + 3);
         | 
| 28 28 | 
             
            ```
         | 
| 29 29 |  | 
| 30 | 
            -
            1からNまでの自然数の和は「`(N * N + 1) / 2`」で求められる事を利用します。
         | 
| 30 | 
            +
            1からNまでの自然数の和は「`(N * (N + 1)) / 2`」で求められる事を利用します。
         | 
| 31 31 |  | 
| 32 32 | 
             
            ```JavaScript
         | 
| 33 33 | 
             
            var number = Math.floor(100/6);
         | 
3
最速 -> 本回答の中で最速
    
        answer	
    CHANGED
    
    | @@ -16,7 +16,7 @@ | |
| 16 16 | 
             
            console.log(result);  // 816
         | 
| 17 17 | 
             
            ```
         | 
| 18 18 |  | 
| 19 | 
            -
            ### 自然数の和 (最速)
         | 
| 19 | 
            +
            ### 自然数の和 (本回答の中で最速)
         | 
| 20 20 |  | 
| 21 21 | 
             
            while文を発展させたコード。
         | 
| 22 22 | 
             
            6の倍数の総和も6の倍数です。
         | 
2
while 文のインクリメント処理の最適化\(インクリメント回数を
    
        answer	
    CHANGED
    
    | @@ -2,22 +2,43 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            ### while 文
         | 
| 4 4 |  | 
| 5 | 
            -
             | 
| 5 | 
            +
            繰り返し処理で最速と思われるwhile文。
         | 
| 6 | 
            +
            このコードを発展させる事である「数式」が浮かび上がります。
         | 
| 6 7 |  | 
| 7 8 | 
             
            ```JavaScript
         | 
| 8 9 | 
             
            'use strict';
         | 
| 9 | 
            -
            var i =  | 
| 10 | 
            +
            var i = 1, iMax = Math.floor(100/6) + 1, result = 0;
         | 
| 10 11 |  | 
| 11 | 
            -
            while ( | 
| 12 | 
            +
            while (i < iMax) {
         | 
| 12 | 
            -
              result += 6 * i;
         | 
| 13 | 
            +
              result += 6 * i++;
         | 
| 13 14 | 
             
            }
         | 
| 14 15 |  | 
| 15 16 | 
             
            console.log(result);  // 816
         | 
| 16 17 | 
             
            ```
         | 
| 17 18 |  | 
| 19 | 
            +
            ### 自然数の和 (最速)
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            while文を発展させたコード。
         | 
| 22 | 
            +
            6の倍数の総和も6の倍数です。
         | 
| 23 | 
            +
            では、乗数に注目してみると「自然数の和」である事が分かります(下記2行のコードは等価です)。
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            ```JavaScript
         | 
| 26 | 
            +
            6 * 1 + 6 * 2 + 6 * 3;
         | 
| 27 | 
            +
            6 * (1 + 2 + 3);
         | 
| 28 | 
            +
            ```
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            1からNまでの自然数の和は「`(N * N + 1) / 2`」で求められる事を利用します。
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ```JavaScript
         | 
| 33 | 
            +
            var number = Math.floor(100/6);
         | 
| 34 | 
            +
            number = 6 * number * (number + 1) / 2;
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            console.log(number);  // 816
         | 
| 37 | 
            +
            ```
         | 
| 38 | 
            +
             | 
| 18 39 | 
             
            ### for 文
         | 
| 19 40 |  | 
| 20 | 
            -
             | 
| 41 | 
            +
            while 文があるなら for 文も楽勝ですよね。
         | 
| 21 42 | 
             
            あれ?if文がない…。
         | 
| 22 43 |  | 
| 23 44 | 
             
            ```JavaScript
         | 
| @@ -50,4 +71,8 @@ | |
| 50 71 |  | 
| 51 72 | 
             
            「せんせー。if文を使ったコードは冗長で筋が悪いと思います!」
         | 
| 52 73 |  | 
| 74 | 
            +
            ### 更新履歴
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            - 2017/06/25 11:59 「自然数の和」を利用したコードを追記。私が思いつく中では最速。
         | 
| 77 | 
            +
             | 
| 53 | 
            -
            Re: ojii-111 さん
         | 
| 78 | 
            +
            Re: ojii-111 さん
         | 
1
「for \+ if 文 \(非最適化版\)」で 100 が加算可能な値に含まれていなかった不具合を修正
    
        answer	
    CHANGED
    
    | @@ -39,7 +39,7 @@ | |
| 39 39 | 
             
            'use strict';
         | 
| 40 40 | 
             
            var result = 0;
         | 
| 41 41 |  | 
| 42 | 
            -
            for (var i = 1; i <  | 
| 42 | 
            +
            for (var i = 1; i < 101; ++i) {
         | 
| 43 43 | 
             
              if (i % 6 === 0) {
         | 
| 44 44 | 
             
                result += i;
         | 
| 45 45 | 
             
              }
         | 
