[Algorithms] 10. Pyramids


質問する



解決策



作成
  • for loop row
  • 空文字列level
  • を生成
  • for loop行内でfor loop列
  • を回転する
  • center index
  • を探しています
  • 中間点-行<=column&&midpoint+row>=列条件式🤣
  • n, row = 0, level = ''
  • if文row==n(列が重要)
  • max level.length === 2*n -1 -> move to next row
  • 中点条件文
  • 宣言変数add

    コミットコード

    function pyramid(n) {
      const midpoint = Math.floor((2*n-1) /2);
      
      for (let row = 0; row < n; row++) {
        let level = '';
        
        for (let column = 0; column <2 * n-1; column++) {
         if (midpoint - row <= column && midpoint + row >= column) {
           level += '#';
         } else {
           level += ' ';
         }
        }
        console.log(level)
      }
    }
    function pyramid(n, row = 0, level = '') {
      if (row === n) {
        return;
      }
      
      if (level.length === 2 * n-1) {
        console.log(level);
        return pyramid(n, row +1);
      }
      
      const midpoint = Math.floor((2*n-1)/2);
      let add;
      if(midpoint - row <= level.length && midpoint + row >= level.length) {
        add = '#';
      } else {
        add = ' ';
      }
      pyramid(n, row, level + add);
    }