package main
import “fmt”
/*
打印金字塔經典案例
使用for循環完成下面的案例
請編寫一個程序,可以接受一個證書,表示層數,打印出金字塔。(上機練習題,打印空心金字塔)
1)完成思路,可以先從矩形開始打
2)代碼實現
3)打印金字塔經典案例
/
func main(){
//使用for循環完成下面的案例請編寫一個程序,可以接受一個證書,表示層數,打印出金子塔
//分析編程思路
//走代碼
//編程思路
//1.打印一個矩形
/
***
***
***
*/
//2.打印半個金字塔
/*
* 1個*
** 2個*
*** 3個*
*/
//3 打印整個金字塔
/*
* 1層1個* 規律:2*層數-1 空格2 規律 縂層數-當前層數
*** 2層3個* 規律:2*層數-1 空格1 規律 縂層數-當前層數
***** 3層5個* 規律:2*層數-1 空格0 規律 縂層數-當前層數
*/
//4將層數做成一個變量
//var totalLevel int
//5打印空心金字塔
/*
*
***
*****
分析:在我們給每行打印*號時,需要考慮是打印 * 還是打印空格,我們的分析結果是,每層的第一個和最後一個是打印*,其他就應該是空的,輸出空格。
還需要分析道一個例外情況,最後層是全部打*
*/
var totalLevel int = 9
//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()
}
}