2016-08-18 9 views
1
I think that my confusion is also related to my misunderstanding of the tier definition. What purpose does the '' placeholder serve in defining the tier variable as such? 

function printTriangle(length) { 
    for(var i = 1; i <= length; i++) { 

     var tier = ''; 

     for(var j = 0; j < i; j++) { 
      tier += '*'; 
     } 

    console.log(tier); 
    } 
} 
//printTriangle(3); 


* 
** 
*** 

、どのように第3のループは、出力がそうようにピラミッドに整列する追加しますか?私はこれをブレインター/インタビューのプロンプトとして利用しているのを見たことがありますが、基本的な理解は(私があなたがまだ話すことができないならば、これに潜っています)、三角形からピラミッドへの移行はかなり単純です。2番目の 'for'ループは必要ですか?もしそうなら、なぜですか?さらに

 * 
     * * 
    * * * 
    * * * * 
    * * * * * 
    * * * * * * 
* * * * * * * 
* * * * * * * * 


function printPyramid(length) { 
    for(var i = 1; i <= length; i++) { 
     var tier = ''; 

     for(var j = length - i; j > 0; j--) { 
      tier += ' '; 
     } 
     for(var k = 0; k < i; k++) { 
      tier += '* '; 
     } 
    console.log(tier); 
    } 
} 
//printPyramid(10); 

事前にありがとうございます!

答えて

0

''プレースホルダのみを文字列としてtier変数を初期化するために使用されます。その値はループが入力され実際の文字が追加されるまで使用されません。

はい。最初のループは行を処理します。 2番目のループは各レベルを描画します。 jループは入力パラメータとしてiを使用することに注意してください。この場合、ピラミッドレベル(上から始まる)は、そのポイントでのピラミッドの幅に等しい。

3番目のループを追加することは余計なものではありません。それがするのは、ピラミッドが画面の左側に並んでいる頂点ではなく、中央の頂点を持つようにスペース文字を追加することです。

+0

明確な回答をいただきありがとうございます! – AndrewC

+0

あなたはようこそ!私たちが助けてくれてうれしいです。 –

関連する問題