4.6 案例一:打印金字塔
编写一个程序,可以接收一个整数,表示层数,打印出金字塔。
1️⃣第一步:打印一个矩形
package mainimport "fmt"func main() {// i表示层数for i := 1; i <= 3; i++ {// j表示每层打印多少*for j := 1; j <= 3; j++ {fmt.Print("*")}fmt.Println()}
}
✅运行结果:
2️⃣第二步:打印半个金字塔:
package mainimport "fmt"func main() {// i表示层数for i := 1; i <= 3; i++ {// j表示每层打印多少*for j := 1; j <= i; j++ {fmt.Print("*")}fmt.Println()}
}
✅运行结果:
3️⃣第三步:打印整个金字塔
package mainimport "fmt"func main() {var totalLevel int = 7// i表示层数for i := 1; i <= totalLevel; i++ {// 在打印*前先打印空格for k := 1; k <= totalLevel-i; k++ {fmt.Print(" ")}// j表示每层打印多少*for j := 1; j <= 2*i-1; j++ {fmt.Print("*")}fmt.Println()}
}
✅运行结果:
4️⃣第四步:打印空心金字塔
分析:
- 每一层的第一个和最后一个打印
*
,其他的打印空格
- 最后一层全部打印
*
package mainimport "fmt"func main() {var totalLevel int = 15// i表示层数for i := 1; i <= totalLevel; i++ {// 在打印*前先打印空格for k := 1; k <= totalLevel-i; k++ {fmt.Print(" ")}// j表示每层打印多少*for j := 1; j <= 2*i-1; j++ {if j == 1 || j == 2*i-1 || i == totalLevel {fmt.Print("*")} else {fmt.Print(" ")}}fmt.Println()}
}
✅运行结果: