//使用 for循环完成练习,可以接收1个整数,表示层数,打印金字塔
////思路:1,打印一个举行
func main() {
//i表示层数
for i := 1; i <= 3; i++ {
//j表示每行打印多少 *
for j := 1; j <= 3; j++ {
fmt.Print("*")
}
fmt.Println()
}
}
***
***
***
//思路2.打印半个金字塔
//* 1个*
//** 2个*
//*** 3个* 由此发现星的个数是和每一层的i是一样的,把内层循环 j 改成 i
func main() {
//i表示层数
for i := 1; i <= 3; i++ {
//j表示每行打印多少 *
for j := 1; j <= i; j++ {
fmt.Print("*")
}
fmt.Println()
}
}
*
**
***
//思路3.打印半个金字塔
// * 1层 1个* 规律: 2*层数-1
// ** 2层 3个* 规律: 2*层数-1
// ***** 3层 5个* 规律: 2*层数-1
func main() {
//i表示层数
for i := 1; i <= 3; i++ {
//j表示每行打印多少 *
for j := 1; j <= 2 * i -1; j++ {
fmt.Print("*")
}
fmt.Println()
}
}
*
***
*****
//思路4:打印*号前先打空格
func main() {
//i表示层数
for i := 1; i <= 3; i++ {
//打印*号前先打空格
// * 1层: 有1个* 规律: 2* 层数 -1 (即2x1-1=1) 空格有2个,规律:总层数-当前行数
// *** 2层: 有3个* 规律: 2* 层数 -1 (即2x2-1=3) 空格有1个,规律:总层数-当前行数
//***** 3层: 有5个* 规律: 2* 层数 -1 (即2x3-1=5) 空格有0个,规律:总层数-当前行数,
for k := 1; k <= 3 - i; k++ {
fmt.Print(" ")
}
//j表示每行打印多少 *
for j := 1; j <= 2*i-1; j++ {
fmt.Print("*")
}
fmt.Println()
}
}
*
***
*****
//思路5:打印空格金字塔
func main() {
var endline int = 9
//i表示层数
for i := 1; i <= endline; i++ {
for k := 1; k <= endline - i; k++ {
fmt.Print(" ")
}
//j表示每行打印多少 *
for j := 1; j <= 2*i-1; j++ {
//打印第一个和最后一个时候,打印* ,否则打印 空格
if j == 1 || j == 2 * i - 1 || i == endline {
fmt.Print("*")
}else {
fmt.Print(" ")
}
}
fmt.Println()
}
}
*
* *
* *
* *
* *
* *
* *
* *
*****************