{ }codelper
逻辑运算符P0019

闰年判断

给出年份 y。
按下面的规则(格里历),是闰年输出 "闰年",否则输出 "平年"。
能被 4 整除的是闰年;但能被 100 整除的不是闰年;但能被 400 整除的又是闰年。
例如:2024 年是闰年,1900 年是平年,2000 年是闰年。

输入
一个整数 y(1 ≤ y ≤ 10000)
输出
"闰年" 或 "平年"
样例 1 · stdin
2000
stdout
闰年
样例 2 · stdin
1900
stdout
平年
main.py
输入(stdin)

运行时这些行会依次作为 input()/标准输入传入(运行中不会等待输入)。

$ 就绪

请在电脑上打开以编写和运行代码。在手机上可以查看题目和题解。

其他语言怎么写?查看各语言题解 · 8 种语言题解

漏掉 100 和 400 的规则是最常见的错误。
只看 y % 4 == 0 会把 1900 年当成闰年;只加 100 的规则又会把 2000 年当成平年。
写成一行是 (y % 4 == 0 && y % 100 != 0) || y % 400 == 0。
“并且/或者”的写法因语言而异:Python 用 and、or、not,其余 7 种语言(包括 Craykon)用 &&、||、!。
各语言里 && 都比 || 先结合,但加上括号读的人就不必猜。
Craykon:如果 (…) { } 否则 { }。

Pythonmain.py · 5 行
y = int(input())if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0:    print("闰年")else:    print("平年")
JavaScriptmain.js · 3 行
const y = Number(require("fs").readFileSync(0, "utf8").trim());const leap = (y % 4 === 0 && y % 100 !== 0) || y % 400 === 0;console.log(leap ? "闰年" : "平年");
TypeScriptmain.ts · 4 行
import { readFileSync } from "node:fs";const y: number = Number(readFileSync(0, "utf8").trim());const leap: boolean = (y % 4 === 0 && y % 100 !== 0) || y % 400 === 0;console.log(leap ? "闰年" : "平年");
JavaMain.java · 9 行
import java.util.Scanner; public class Main {    public static void main(String[] args) {        int y = new Scanner(System.in).nextInt();        boolean leap = (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;        System.out.println(leap ? "闰年" : "平年");    }}
C#Main.cs · 11 行
using System; class Program{    static void Main()    {        int y = int.Parse(Console.ReadLine());        bool leap = (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;        Console.WriteLine(leap ? "闰年" : "平年");    }}
C++main.cpp · 8 行
#include <iostream> int main() {    int y;    std::cin >> y;    bool leap = (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;    std::cout << (leap ? "闰年" : "平年") << "\n";}
Cmain.c · 9 行
#include <stdio.h> int main(void) {    int y;    scanf("%d", &y);    if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) puts("闰年");    else puts("平年");    return 0;}
Craykonmain.cray · 9 行
y = 控制台.读行().转数字();如果 (y % 4 == 0 && y % 100 != 0 || y % 400 == 0){    控制台.输出("闰年");}否则{    控制台.输出("平年");}