倾斜的金字塔图案

时间:2018-09-22 14:40:43

标签: javascript

我想创建一个金字塔图案(在侧面)。 我已经掌握了第一部分,但是我需要帮助才能将最后一部分递减。 到目前为止,我已经知道了: var out = document.getElementById(“ out”); 对于(var i = 0; i <20; i ++){     如果(i <= 10){         对于(var j = 0; j 10){         对于(var j = 9; j> 0; j-){             out.innerHTML + =“ *”;         }     }     out.innerHTML + =“
”; }

2 个答案:

答案 0 :(得分:1)

您可以运行从19-i0的循环,而当i进一步增加时,19-i的值会越来越小:

var out = document.getElementById("out");

for (var i = 0; i < 20; i++ ){

    if ( i <= 10){

        for ( var j = 0; j < i; j++ ){
            out.innerHTML += "*";
        }

    } else if (i > 10){
        for ( var j = 19-i; j >= 0; j--){ // <-- run loop so that number of iterations gets lower and lower
            out.innerHTML += "*";
        }
    }

    out.innerHTML += "<br>";
}
<p id="out"></p>

答案 1 :(得分:0)

基于给定步骤/计数Pyramid形状的简单解决方案:

var steps = 5, outputStr = "", isTriangle = false;
var newLine = "<br />"; // "\n" for String, <br /> for element break line.
for (var i = 1; i <= steps; i++) {
    // Forward
    for (var j = 1; j <= i; j++) {
        outputStr += i;
    }
    outputStr += newLine;
    if (i == steps && !isTriangle) {
        // Backward - After completing Forward
        var k = i - 1;
        while (k > 0) {
            for (var j = k; j > 0; j--) {
                outputStr += k;
            }
            k--;
            outputStr += newLine;
        }
    }
}
var out = document.getElementById("out");
out.innerHTML = outputStr;
<p id="out"></p>

对于Java,请参见:Draw Pyramid