从右到左打印一个三角形

时间:2016-03-01 04:28:24

标签: javascript

我开始编程。我使用的是javascript。

练习时,我打印一个这样的三角形:

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

但我想从右到左打印,如下所示:

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

所以,凭借我的noob知识,我写了这段代码:

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);

有效!但我认为这很糟糕。

有人可以给我一些建议吗?

非常感谢!

3 个答案:

答案 0 :(得分: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 :(得分: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)

答案 2 :(得分: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);
    }