2017-02-16 15 views
0

私のコードは機能していません。私はバグが何であるか把握しようとしています。助けてもらえますか? !これは、最初のn個の三角形の数の配列を返す関数です。私のコードにバグがあります

たとえば、listTriangularNumbers(5)は[1,3,6,10,15]を返します。

function listTriangularNumbers(n) { 
    var num; 
    var array = []; 
    for (i = 1; i <= n; ++i) { 
     num = i; 
     for (j = i; j >= 1; --j) { 
      num = num + j; 
     } 
     array.push(num); 
    } 
    return array; 
} 
+1

あなたはそれが動作していないとはどういう意味ですか?それは何ですか?あなたはそれを望んでいないのですか? –

答えて

1

jのあなたの最初の初期化は、それはそれは高すぎるだろうiで始めて、間違っています。また、条件が正しく働くことを確認するために、演算子を切り替えました。

function listTriangularNumbers(n) { 
    var num; 
    var array = []; 
    for (i = 1; i <= n; i++) { 
     num = i; 
     for (j = i-1; j >= 1; j--) { 
      num = num + j; 
     } 
     array.push(num); 
    } 
    return array; 
} 
0

あなたは助けを得るために、コードの下に試すことができます。この操作を行うにはループのために、あなたは実際に2を必要としない

a = listTriangularNumbers(8); 
 
console.log(a); 
 
function listTriangularNumbers(n) { 
 
    var num; 
 
    var array = [0]; 
 
    for (i = 1; i <= n; i++) { 
 
     num = 0; 
 
     for (j = 1; j <= i; j++) { 
 
      num = num + j; 
 
     } 
 
     array.push(num); 
 
    } 
 
    return array; 
 
}

0

。 1つのforループで十分です。

function listTriangularNumbers(n) { 

    // Initialize result array with first element already inserted 
    var result = [1]; 

    // Starting the loop from i=2, we sum the value of i 
    // with the last inserted element in the array. 
    // Then we push the result in the array 
    for (i = 2; i <= n; i++) { 
    result.push(result[result.length - 1] + i); 
    } 

    // Return the result 
    return result; 
} 

console.log(listTriangularNumbers(5)); 
0

function listTriangularNumbers(n) { 
 
     var num; 
 
     var array = []; 
 
     for (i = 1; i <= n; ++i) { 
 
      num = i; 
 
      for (j = i-1; j >= 1; --j) { 
 
       num = num + j; 
 
      } 
 
      array.push(num); 
 
     } 
 
     return array; 
 
    } 
 
    var print=listTriangularNumbers(5); 
 
    console.log(print);

関連する問題