写点golang作业

94 阅读1分钟

制作一个空心金字塔 【【尚硅谷】Golang入门到实战教程丨一套精通GO语言】 www.bilibili.com/video/BV1ME…

实心金字塔

package main
import "fmt"
 // 看下满*金字塔
 func main (){
 	/*
			  *         1层 1个* 规律 2*层数 -1 空格 2 总层数 - 当前层数
		         ***        2层 3个* 规律 2*层数 -1 空格 1 总层数 - 当前层数
		        *****       3层 5个* 规律 2*层数 -1 空格 0 总层数 - 当前层数
	*/
 

 var totalLevel := 9
        
      for i:=1;i<=totalLevel;i++{
        //先打印空格,totalLevel-i 表示空格数
        for k:=1;k<=totalLevel-i;k++{
           fmt.Print(" ")
        }
        //打印 *
        for j:=1;j<2*i-1;j++{
           fmt.Print("*")
        }
      }  

 }

空心金字塔

package main
import "fmt"
 // 看下满*金字塔
 func main (){
 	/*
			  *         1层 1个* 规律 2*层数 -1 空格 2 总层数 - 当前层数
		         * *        2层 3个* 规律 2*层数 -1 空格 1 总层数 - 当前层数
		        *****       3层 5个* 规律 2*层数 -1 空格 0 总层数 - 当前层数
	*/
 
 var totalLevel := 9
        
      for i:=1;i<=totalLevel;i++{
        //先打印空格,totalLevel-i 表示空格数
        for k:=1;k<=totalLevel-i;k++{
           fmt.Print(" ")
        }
        //打印 *
       for j:=1;j<=2*i-1;j++{
        //空心,每行的第一个和最后一个是*,还有最后一行是*
        // j==1 表示每层第一个,j==2*i-1表示每行最后一个
        
        
        if j==1 || j==2*i-1 || i==totalLevel{
               fmt.Print("*")
        } else {
             fmt.Print(" ")
        }
       }
       fmt.Println() 
      }  

 }

打印空心菱形

package main

import "fmt"

var n int = 10

func main() {

	for i := 0; i <= n; i++ {
		for k := 0; k <= n-i; k++ {
			fmt.Print(" ") // 输出空格
		}
		for j := 1; j <= 2*i-1; j++ {
			if j == 1 || j == 2*i-1 {
				fmt.Print("*")
			} else {
				fmt.Print(" ")
			}

		}
		fmt.Println()
	}
	for i := n - 1; i >= 1; i-- {
		for k := 0; k <= n-i; k++ {
			fmt.Print(" ") // 输出空格
		}
		for j := 1; j <= 2*i-1; j++ {
			if j == 1 || j == 2*i-1 {
				fmt.Print("*")
			} else {
				fmt.Print(" ")
			}

		}
		fmt.Println()
	}
}