Go语言基础练习【1】 基础循环

本文介绍了使用Go语言进行基础循环操作,包括打印左对齐金字塔、居中金字塔、空心金字塔、九九乘法表以及打印阶梯等经典练习题目,通过分析和实现这些图形的打印过程,深入理解Go语言的循环控制结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 打印左对齐金字塔

示例:
*
**
***
func pyramid_left(layers int) {
	for i := 1; i <= layers; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("*")
		}
		fmt.Println()
	}
}

2 打印居中金字塔

  *
 ***
*****

分析:第1层左边2空格,第2层左边1空格,因此左边空格数 = 总层数 - 当前层
第1层*有1个,第2层3个,第3层5个,因此*个数 = 2 * 当前层 - 1

func pyramid_middle(layers int) {
	for i := 1; i <= layers; i++ {
		for j := layers - i; j > 0; j-- {
			fmt.Printf(" ")
		}
		for j := 1; j <= 2*i-1; j++ {
			fmt.Printf("*")
		}
		fmt.Println()
	}
}

3 打印空心金字塔

   *
  * *
 *   *
*******

分析:第1层左边3空格,第2层左边2空格,因此左边空格数 = 总层数 - 当前层
第2层中间1空格,第3层中间3空格,因此中间空格数 = 2 * (当前层 - 1) - 1
由于除了第1层和最后一层,其他层都只有2个*,因此在 1.2 的基础上添加需要打印*的判断
注意:第1层和最后1层的*需要全部打印

func pyramid_hollow(layers int) {
	//i表示当前层
	for i := 1; i <= layers; i++ {
		//先打印左边的空格数
		for j := layers - i; j > 0; j-- {
			fmt.Printf(" ")
		}
		//j表示当前层数需要打印的字符
		for j := 1; j <= 2*i-1; j++ {
			if j == 1 || j == 2*i-1 || i == layers {
				fmt.Printf("*")
			} else {
				fmt.Printf(" ")
			}
		}
		fmt.Println()
	}
}

4 九九乘法表

1	1
2	2	4
3	3	6	9
	1	2	3
func multi_table(layers int) {
	for i := 1; i <= layers+1; i++ {
		//最后一行直接打印1、2、3、...
		if i == layers+1 {
			for j := 1; j <= layers; j++ {
				fmt.Printf("\t%d", j)
			}
		} else {
			//其他行,先打印当前行数,再打印乘积
			fmt.Printf("%d", i)
			for j := 1; j <= i; j++ {
				fmt.Printf("\t%d", i*j)
			}
		}
		fmt.Println()
	}
}

5 打印阶梯

♡
▇▇
▇▇▇
▇▇▇▇
▇▇▇▇▇
func ladder(layers int) {
	for i := 1; i <= layers; i++ {
		if i == 1 {
			fmt.Println("♡")
		} else {
			for j := 1; j <= i; j++ {
				fmt.Printf("▇")
			}
			fmt.Println()
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值