如何使用JavaScript使用'制作反向星号三角形。环

时间:2017-03-24 09:55:26

标签: javascript algorithm for-loop

我想使用'来制作反向三角形。循环,应该是这样的:

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

这就是我得到的:

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

这是我的代码:



function rightTriangle(n) {
  for (var i = 0; i <= n; i++) {
    for (var j = n - 1; j >= i; j--) {
      document.write('*');
    }
    document.write('<br>');
  }
}
rightTriangle(5);
&#13;
&#13;
&#13;

请帮我完成这项任务,我将非常感激!

4 个答案:

答案 0 :(得分:1)

添加以下代码以保留意图

for(var k=0; k<i; k++){
    document.write("&nbsp;");
}

&#13;
&#13;
function rightTriangle (n) {
    for (var i = 0; i <= n; i++) {
        for(var k=0; k<i; k++){
          document.write("&nbsp;");
        }
        for (var j = n-1; j >= i; j--) {
            document.write('*');
        }
        document.write('<br>');
    }
}
rightTriangle(5);
&#13;
html{
  font-family:monospace;
}
&#13;
&#13;
&#13;

答案 1 :(得分:1)

function rightTriangle(n) {
  for (var i = 0; i <= n; i++) {
    for (var j = 0; j <= n; j++) {
      if(j>=i) document.write('*');
      else document.write('&nbsp&nbsp');
    }
    document.write('<br>');
  }
}
rightTriangle(5);

答案 2 :(得分:0)

ALGO

  • 使用2个值" ""*"
  • 创建n * n矩阵
  • 在html " "中没有效果,因为会修剪额外的空格。您必须使用&nbsp;,单个空间的unicode值。
  • 现在循环并将必要的部分添加到字符串中。
  • 由于您需要反向三角形,因此空间将首先出现。您可以按升序方式循环,其值i表示空格,n-i表示&#34; *&#34;

&#13;
&#13;
function rightTriangle(n) {
  var html = "";
  for (var i = 0; i < n; i++) {
    for(var j = 0; j< i; j++){
      html += "&nbsp;";
    }
    for(var k = 0; k< n-i; k++){
      html += "*"
    }
    html +="<br/>"
  }
  document.querySelector('.content').innerHTML = html
}
rightTriangle(5);
&#13;
.content {
  font-family: monospace;
}
&#13;
<div class="content"></div>
&#13;
&#13;
&#13;

string.repeat

&#13;
&#13;
function rightTriangle(n) {
  var html = "";
  for (var i = 0; i < n; i++) {
    html += "&nbsp;".repeat(i) + "*".repeat(n - i) + "</br>"
  }
  document.querySelector('.content').innerHTML = html
}
rightTriangle(5);
&#13;
.content {
  font-family: monospace;
}
&#13;
<div class="content"></div>
&#13;
&#13;
&#13;

另请注意,使用document.write< br/>"被视为不良做法。

答案 3 :(得分:0)

这是最简单的解决方案:

   function func(input1,input2) {
     console.log(input1,input2)
     // "undefined, undefined"
   }
    
    angular.module("factory").factory("test", (input1, input2) => {
     console.log(input1, input2)
     //"input1", "input2"
        return {
            func: (input1, input2) => {
                func(input1, input2);
            }
        };
    });