计算数字阶乘
题目描述
用
for循环,计算 5 的阶乘(5! = 5×4×3×2×1)。
输出示例
5的阶乘:120
实现代码
Go
package main
import "fmt"
func main() {
// 定义初始值和阶乘变量
n := 5
factorial := 1
// for条件循环:仅保留条件,初始化/自增在循环外/内
for n >= 1 {
factorial *= n // 等价于 factorial = factorial * n
n-- // 自减,逐步逼近循环终止条件
}
fmt.Printf("5的阶乘:%d\n", factorial)
}
打印 1-20 的偶数
题目描述
打印 1-20 的所有偶数(跳过奇数)。
输出示例
1-20的偶数:2 4 6 8 10 12 14 16 18 20
实现代码
Go
package main
import "fmt"
func main() {
fmt.Print("1-20的偶数:")
// 遍历1-20
for i := 1; i <= 20; i++ {
// 判断是否为奇数,是则跳过当前循环
if i%2 != 0 {
continue // 跳过后续代码,直接进入下一次循环
}
// 仅打印偶数
fmt.Printf("%d ", i)
}
fmt.Println() // 换行
}
打印九九乘法表
题目描述
用嵌套
for循环打印九九乘法表。
输出示例
1×1=1
2×1=2 2×2=4
3×1=3 3×2=6 3×3=9
4×1=4 4×2=8 4×3=12 4×4=16
5×1=5 5×2=10 5×3=15 5×4=20 5×5=25
6×1=6 6×2=12 6×3=18 6×4=24 6×5=30 6×6=36
7×1=7 7×2=14 7×3=21 7×4=28 7×5=35 7×6=42 7×7=49
8×1=8 8×2=16 8×3=24 8×4=32 8×5=40 8×6=48 8×7=56 8×8=64
9×1=9 9×2=18 9×3=27 9×4=36 9×5=45 9×6=54 9×7=63 9×8=72 9×9=81
实现代码
Go
package main
import "fmt"
func main() {
// 外层循环:控制行数(1-9)
for i := 1; i <= 9; i++ {
// 内层循环:控制列数(1-当前行数)
for j := 1; j <= i; j++ {
// 格式化输出,每个式子占6个字符宽度
fmt.Printf("%d×%d=%-2d ", i, j, i*j)
}
// 每行结束后换行
fmt.Println()
}
}
统计字符出现次数
题目描述
统计指定字符的出现次数。
输出示例
字符串:Go语言Go编程Go123
字符'G'出现次数:3
实现代码
Go
package main
import "fmt"
func main() {
s := "Go语言Go编程Go123"
targetChar := 'G'
count := 0
// for range遍历字符串(按rune遍历,支持中文)
for _, c := range s {
if c == targetChar {
count++
}
}
fmt.Printf("字符串:%s\n", s)
fmt.Printf("字符'%c'出现次数:%d\n", targetChar, count)
}
切片元素求和 & 去重
题目描述
- 定义切片
nums = []int{1, 2, 3, 2, 4, 3, 5};- 第一步:遍历切片求和,输出总和;
- 第二步:遍历切片去重,生成新切片
uniqueNums,输出去重结果;- 仅使用
for循环,无其他复杂数据结构。
输出示例
原切片:[1 2 3 2 4 3 5]
切片元素总和:20
去重后的切片:[1 2 3 4 5]
实现代码
Go
package main
import "fmt"
func main() {
nums := []int{1, 2, 3, 2, 4, 3, 5}
sum := 0
uniqueNums := []int{}
// 1. 遍历求和
for _, num := range nums {
sum += num
}
// 2. 遍历去重(基础版:嵌套for判断是否已存在)
for _, num := range nums {
// 标记是否已存在
exists := false
for _, u := range uniqueNums {
if u == num {
exists = true
break
}
}
if !exists {
uniqueNums = append(uniqueNums, num)
}
}
fmt.Printf("原切片:%v\n", nums)
fmt.Printf("切片元素总和:%d\n", sum)
fmt.Printf("去重后的切片:%v\n", uniqueNums)
}
统计切片元素频次
题目描述
- 定义切片
fruits = []string{"苹果", "香蕉", "苹果", "橙子", "香蕉", "苹果"};- 用
map[string]int存储水果名称和频次,for循环遍历切片统计;- 遍历
map输出每个水果的频次。
输出示例
水果列表:[苹果 香蕉 苹果 橙子 香蕉 苹果]
水果频次统计:
苹果:3次
香蕉:2次
橙子:1次
实现代码
Go
package main
import "fmt"
func main() {
fruits := []string{"苹果", "香蕉", "苹果", "橙子", "香蕉", "苹果"}
// 定义map存储频次:key=水果名,value=次数
freqMap := make(map[string]int)
// 1. 遍历切片统计频次
for _, fruit := range fruits {
freqMap[fruit]++ // 不存在则默认0,++后为1;存在则自增
}
fmt.Printf("水果列表:%v\n", fruits)
fmt.Println("水果频次统计:")
// 2. 遍历map输出结果
for fruit, count := range freqMap {
fmt.Printf("%s:%d次\n", fruit, count)
}
}
单词计数
题目描述
- 定义字符串
sentence = "I love Go Go is a great language I love Go";- 第一步:按空格拆分字符串为单词切片;
- 第二步:用 map 统计每个单词的出现次数;
- 遍历 map 输出单词和频次。
输出示例
原句子:I love Go Go is a great language I love Go
单词计数结果:
I:2次
love:2次
Go:3次
is:1次
a:1次
great:1次
language:1次
实现代码
Go
package main
import (
"fmt"
"strings"
)
func main() {
sentence := "I love Go Go is a great language I love Go"
// 1. 按空格拆分字符串为单词切片
words := strings.Split(sentence, " ")
// 2. 定义map统计单词频次
wordCount := make(map[string]int)
// 遍历单词切片统计
for _, word := range words {
wordCount[word]++
}
fmt.Printf("原句子:%s\n", sentence)
fmt.Println("单词计数结果:")
// 遍历map输出
for word, count := range wordCount {
fmt.Printf("%s:%d次\n", word, count)
}
}