题目
输入一个大于0的整数作为金子塔层数,先输出实心金字塔,再输出空心金字塔
实心金字塔
思路
实心金子塔先输出空格,空格和层数关系为:f(n)= n - 当前层数,再输出*,其与层数的关系为等差为2的数列:f(n)=2*n -1
代码
package main
import (
"fmt"
)
func printPyramid(n int) {
//控制层数
for i := 1 ; i <= n; i++ {
//控制空格输出
for k := 1; k <= n - i; k++ {
fmt.Printf(" ")
}
//控制*输出
for j := 1; j <= 2 * i - 1; j++ {
fmt.Printf("*")
}
//每层换行
fmt.Println()
}
}
func main() {
var n int
for {
fmt.Printf("请输入一个大于0的整数: ")
fmt.Scanln(&n)
if n < 1 {
fmt.Println("输入错误!")
continue
}
printPyramid(n)
}
}