Skip to main content

在本页

Linserin 作为一个有 C++ NOI 经历的人(尽管已经几乎忘光了),算法这里总是绕不开的话题。这里先从简单讲起。
先前已经学习了 Hello World 的实现和 quote 模块的调用,接下来将要学习 if-switch 的使用。 For example: 我们做一个判断闰年的计算器。
闰年逻辑:标准公历规则——能被4整除且不能被100整除,或能被400整除
package main

import "fmt"

func main() {
    var input string
    fmt.Print("请输入年份:")
    // 读取一行输入(含空格等),保存为字符串
    fmt.Scanln(&input)

    var year int
    // 使用 fmt.Sscanf 从字符串中解析出年份
    n, err := fmt.Sscanf(input, "%d", &year)
    if err != nil || n != 1 {
        fmt.Println("输入无效,请输入一个整数。")
        return
    }

    // 闰年判定:能被4整除且不能被100整除,或能被400整除
    if (year%4 == 0 && year%100 != 0) || year%400 == 0 {
        fmt.Printf("%d 年是闰年。\n", year)
    } else {
        fmt.Printf("%d 年是平年(普通年)。\n", year)
    }
}
同样,开始算法讲解 。
1

程序开始

    var input string
    fmt.Print("请输入年份:")
    // 读取一行输入(含空格等),保存为字符串
    fmt.Scanln(&input)
赋值输入 input (input 为字符串类型)
2

格式化为 int 变量

// 定义 year 变量    
var year int

// 使用 fmt.Sscanf 从字符串中解析出年份
n, err := fmt.Sscanf(input, "%d", &year)

// 错误处理
if err != nil || n != 1 {
    fmt.Println("输入无效,请输入一个整数。")
    return
}
3

判定并输出

// 闰年判定:能被4整除且不能被100整除,或能被400整除
if (year%4 == 0 && year%100 != 0) || year%400 == 0 {
    fmt.Printf("%d 年是闰年。\n", year)
} else {
    fmt.Printf("%d 年是平年(普通年)。\n", year)
}
Last modified on June 24, 2026