需求
打印空心金字塔
解析
// *
// * *
// * * *
// * * * *// 看成由星号、空格组成的矩形:
// 1 1 1 0
// 2 3 2 1
// 3 5 3 2
// 4 7 4 3// 层数:n
// 每层总元素数:2n-1
// 每星号数:n
// 每层空格数:n-1// 每层星号数:i
// 每层星号之间的空格数:i-1
// 每层中间元素数:i+i-1
// 每层星号左侧的空格数:(2n-1-(i+i-1))/2
实现
package mainimport "fmt"func kong_ge(x int) string {var s stringfor i := 1; i <= x; i++ {s = s + " "}return s
}func xing_hao(x int) string {var s stringfor i := 1; i <= x; i++ {// s = s + "*"s = s + "*" + " "}return s
}func pyramid(n int) {var s0 stringfor i := 1; i <= n; i++ {s1 := kong_ge((2*n - 1 - (i + i - 1)) / 2)s2 := xing_hao(i)// s0 = s1 + s2 + s1s0 = s1 + s2fmt.Printf("%v\n", s0)}
}
* * * * * *
* * * *