代码:
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
* *** ***** ******* ********* *********** ************* *************** ***************** ******************* * * * * * * * * * * * * * * * * * *******************