首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写一个程序,要求输入并生成一个具有那么多层的星体金字塔,然后每次添加2个星体

编写一个程序,要求输入并生成一个具有那么多层的星体金字塔,然后每次添加2个星体
EN

Stack Overflow用户
提问于 2021-05-02 03:17:43
回答 2查看 48关注 0票数 0

我正在尝试创建一个可以生成一个星座金字塔的程序。金字塔的层数取决于用户的输入。例如,如果用户输入2,它将显示如下内容

代码语言:javascript
复制
 *
***

如你所见,它每层增加两颗星,层数也是如此。我已经为此编写了基本代码。我已经想出了如何制作层,但我似乎想不出如何正确的层数。我想出了如何让两颗星出现在每个新的图层上,但我在居中和正确显示正确数量的图层时遇到了麻烦。(我的金字塔居中不好,也不对称。这是我现在的代码。我添加了一些评论。

对于一些上下文,我将包括我希望金字塔看起来是什么样子的图片。

正如您所看到的,例如,当用户输入4时,有4层,每层每边增加2层。然而,在我目前的代码中,当用户输入4时,没有四层,我不确定如何实现这一点。请不要使用CSS来实现居中,我只想保持它的JavaScript。

代码语言:javascript
复制
var num = prompt("Enter a number..");

for (var i = 1; i <= num; i = i + 2) {
  for (var j = 1; j <= (num - i); j = j + 1) {
    document.write("&nbsp;");
  }

  for (var k = 1; k <= i; k = k + 1) {
    document.write("* ");
  }

  document.write("<br/>");
}

EN

回答 2

Stack Overflow用户

发布于 2021-05-02 03:24:59

当然,您需要修复空格,但无法获得预期行数的原因是您正在增加i +2。i需要为i++

编辑:空间也是固定的。

代码语言:javascript
复制
var num = prompt("Enter a number..");

for (var i = 1; i <= num; i++) {
  for (var j = 0; j < num-i; j++) {
    document.write("&nbsp;");
  }

  for (var k = 1; k <= i; k++) {
    document.write("*");
  }

  document.write("<br/>");
}

票数 1
EN

Stack Overflow用户

发布于 2021-05-02 03:24:43

你应该认为它是一个矩阵,每个行的长度取决于你的图层数,公式是n*2-1,并在行长度的中间设置它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67350047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档