NodeJS打印金字塔和空心金字塔

代码:

function printPyramid(totalLevel) {
	/*
		打印金字塔
	    1	 *
	    2   ***
	    3  *****

	  规律:
	  每层 * 个数 = 2n - 1
	  每层 前空格 = 总层数 - n   (后空格 不用管  直接通过 打印换行实现)
	*/

	// i 代表层数
	for (let i = 1; i <= totalLevel; i++) {
		// j 表示 * 数

		// 打印前空格
		for( let k =1; k <= totalLevel - i; k++) {
			process.stdout.write(" ")
		}
		// 打印 *
		for ( let j = 1; j <= 2 * i - 1; j++) {
			process.stdout.write("*")
		}
		console.log()
        // process.stdout.write("\n")
	} 

	/*
		打印空心金字塔
	    1	 *
	    2   * *
	    3  *   *
	    4 *******
		规律:
		除了最后一层的*全打印,其余层只打第一个和最后一个*
	*/
	console.log()
    // process.stdout.write("\n")

	// i 代表层数
	for (let i = 1; i <= totalLevel; i++) {
		// j 表示 * 数

		// 打印前空格
		for (let k =1; k <= totalLevel - i; k++) {
			process.stdout.write(" ")
		}
		// 打印 *
		for (let j = 1; j <= 2 * i - 1; j++) {
			if (j == 1 || j == 2 * i - 1 || i == totalLevel) {
				process.stdout.write("*")
			} else {
				process.stdout.write(" ")
			}
		}
		console.log()
        // process.stdout.write("\n")
	}
}

printPyramid(10)

output

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

         *
        * *
       *   *
      *     *
     *       *
    *         *
   *           *
  *             *
 *               *
*******************
posted @ 2022-05-09 23:53  暗恋桃埖源  阅读(212)  评论(0编辑  收藏  举报