由于金字塔类型问题很经典,单独开了一章处理正三角倒三角菱形等
- 案例:打印各种类型金字塔
package main import "fmt" func main() { /* 需求:打印各种金字塔 * * * * * * * * * * * * 或者 * *** ***** ******* ********* 或者 * * * * * * * * * * 需求分析: 应该是利用变量和数学算法打印多少个空格和几个*, */ var level int fmt.Println("请输入圣诞树的层数: ") fmt.Scanf("%d",&level) //等边三角形金字塔 for i := 1 ; i <= level ; i++ { //level作为传入值,由使用者决定 /* 分析下: i = 1 , j = 0 , k = 1(* ) i = 2 , j = 1 and 0, k = 2(* ) i = 3 , j = 2 and 1 and 0 , k = 3(* ) 所以就推出,层数是外循环,空格数和*数是内循环 根据通项公式: j循环 => j < i 即可; k循环 => k = 2i - 1 */ for j := 1 ; j <= level - i ; j++ { fmt.Print(" ") } for k := 1 ; k <= i ; k++ { fmt.Print("*")