經典案例打印空心金字塔

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()

 }

}

你可能感兴趣的:(經典案例打印空心金字塔)