javascript中循环的树练习

我想用*创建一棵树。我每次都会给出一个数字,以指定树的高度。 例如,如果我给数字4作为高度,它应该看起来像这样:

fds

我希望使用console.log出现树

我已经做到了:

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

但是如果我使用console.log则不起作用

dn5681 回答:javascript中循环的树练习

您只需要计算每层左侧的空间即可。 最深的一个开始于j=0j=1上方的楼层。依此类推。

给出高度h

  • 楼h-1-> j = 0
  • floor h-2-> j = 1
  • floor 0-> j = h-1

请注意,如果您从0楼开始,则会得到j=h-1,并在随后的每一层都删除一个空格。

因此,您可以轻松编写

    const h = 4;
    console.log(Array(h).fill(0).map((_,i)=>{
        return ' '.repeat(h-1-i)+'*'.repeat(i*2+1)
    }).join('\n'))

,

澄清我的评论。您将无法在控制台中显示html。因此,您需要忘记标签。在打印树时,您应该知道树的大小(高度)。因此,您知道在您的星星之前会有多少个空间。

空格数由总高度-当前“水平”从上到下-1

恒星数是当前“等级”的2倍加1

let spaces = " ".repeat(height-i-1);
let stars = "*".repeat(i*2+1);

因此,只需使用循环从上到下遍历树的所有层次并隐蔽空格和星星

这是一个有关其工作方式的示例(该示例还会打印到文本区域以供预览以及在控制台中使用)

https://codepen.io/relief_melone/pen/zYYRZmj

,

我这样创建了一个。

function drawTree(height) {
        for ( let i = 0; i < height ; i++ ) {
            let star = '*';
            let space = ' ';

            for ( let j = 1; j <= i; j++ ) {
                star = star + '**';            
            }

            let gap = space.repeat(height-i-1);
            star = gap + star;
            console.log(star);
        }
    }

    let number = prompt('Give number for tree height');

    drawTree(number);
本文链接:https://www.f2er.com/3167010.html

大家都在问