Go - 17 Go 实现空心金字塔/菱形
// 打印金字塔 打印空心金字塔
var totallevel int = 4
for i := 1; i <= totallevel; i ++ {
// 每行空格规律 总层数 - 当前层数
for k := 1; k <= totallevel - i; k++ {
fmt.Printf(" ")
}
for j := 1; j <= 2 * i - 1 ; j ++ {
// 空心的条件 最后一行全打印 i == totallevel
if j == 1 || j == (2 * i - 1) || i == totallevel {
fmt.Printf("*")
}else{
fmt.Printf(" ")
}
}
fmt.Println()
}
// 打印出空心菱形 可以分解为两个三角形
for i := 1; i <= totallevel; i ++ {
// 每行空格规律 总层数 - 当前层数
for k := 1; k <= totallevel - i; k++ {
fmt.Printf(" ")
}
for j := 1; j <= 2 * i - 1 ; j ++ {
if j == 1 || j == 2 * i - 1 {
fmt.Printf("*")
}else{
fmt.Printf(" ")
}
}
fmt.Println()
}
for i := totallevel; i >= 1; i -- {
// 每行空格规律 总层数 - 当前层数
for k := 1; k <= totallevel - i; k++ {
fmt.Printf(" ")
}
for j := 1; j <= 2 * i - 1 ; j ++ {
if j == 1 || j == 2 * i - 1 {
fmt.Printf("*")
}else{
fmt.Printf(" ")
}
}
fmt.Println()
}
初学勿喷, 有更好的方法望提出!