在上一篇文章的基础上,现在再学习一下如何打印空心金字塔
主要逻辑:在每行打印*时,需要考虑的是打印*还是打印空格。通过观察中可以发现,每层的第一个和最后一个都是打印*,其他的打印空格,因此我们需要在打印*时加上一个判断逻辑。
package main
import (
"fmt"
)
func main() {
var row int = 3
//i表示层数
for i :=1 ; i <=row; i++ {
//在打印*前先打印空格
for j:= 1; j <= row-i; j++ {
fmt.Print(" ")
}
//k表示每层打印多少*
for k :=1; k <= 2 * i - 1; k++{
//判断打印*还是空格
if k ==1 || k ==2 * i - 1 {
fmt.Print("*")
}else{
fmt.Print(" ")
}
}
//打印一行后换行
fmt.Println()
}
}
运行结果如下
在学习的过程中欢迎大家指正补充,感谢阅读。