2016-03-01 47 views
0

我正在开始编程。我正在使用JavaScript。从右至左打印一个三角形

对于实践中,我打印的三角形是这样的:

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

,但我想打印从右到左,就像这样:所以

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

,用我的小白知识,我写了这代码:

var line = ''; 

var size = 5; 

for (var i = 0; i <= size; i++) { 
    for (var j = 0; j <= size; j++) { 
     if (j == size - i) { 
      line += '#'; 
      if (i != 0) { 
       for (var k = j; k < size; k++) { 
        line += '#'; 
       } 
      } 
     } else { 
      line += ' '; 
     } 
    } 

    line += '\n'; 
} 

console.log(line); 

它的工作原理!但我认为这很糟糕。

有人能给我一些建议吗?

非常感谢!

+0

这应该是[codereview.stackexchange.com(HTTP://codereview.stackexchange。 COM /)。 –

+1

我投票结束这个问题,因为这应该在[codereview.stackexchange.com](http://codereview.stackexchange.com/)上。 –

回答

0

请使用此。

var N = 5;//based on your input 
for (var i=0;i<N;i++) { 
     var str = ""; 
     for (var j=0;j<N;j++) { 
      if (j >= N-i-1) { 
       str += "*"; 
      } else { 
       str += " "; 
      } 
     } 
     console.log(str); 
    } 
+0

非常感谢 – gerchoG

1

短一点:

var size = 5; 
for (i=0;i<size;i++) { 
    var txt = "" 
    for (j=1;j<=size;j++) { 
     txt+=" *"[(j>=size-i)+0] 
    } 
    console.log(txt) 
} 
1

你可以尝试这一个也

function print(n){ 
for (var i=1;i<=n;i++) { 
     var str = ""; 
     for (var j=0;j<n;j++) { 
      str+= (j >= n-i)?"*":" " 
     } 
     console.log(str); 
    }} 
print(9)