闰年判断
给出年份 y。
按下面的规则(格里历),是闰年输出 "闰年",否则输出 "平年"。
能被 4 整除的是闰年;但能被 100 整除的不是闰年;但能被 400 整除的又是闰年。
例如:2024 年是闰年,1900 年是平年,2000 年是闰年。
- 输入
- 一个整数 y(1 ≤ y ≤ 10000)
- 输出
- "闰年" 或 "平年"
2000
闰年
1900
平年
给出年份 y。
按下面的规则(格里历),是闰年输出 "闰年",否则输出 "平年"。
能被 4 整除的是闰年;但能被 100 整除的不是闰年;但能被 400 整除的又是闰年。
例如:2024 年是闰年,1900 年是平年,2000 年是闰年。
2000
闰年
1900
平年
运行时这些行会依次作为 input()/标准输入传入(运行中不会等待输入)。
$ 就绪
请在电脑上打开以编写和运行代码。在手机上可以查看题目和题解。
漏掉 100 和 400 的规则是最常见的错误。
只看 y % 4 == 0 会把 1900 年当成闰年;只加 100 的规则又会把 2000 年当成平年。
写成一行是 (y % 4 == 0 && y % 100 != 0) || y % 400 == 0。
“并且/或者”的写法因语言而异:Python 用 and、or、not,其余 7 种语言(包括 Craykon)用 &&、||、!。
各语言里 && 都比 || 先结合,但加上括号读的人就不必猜。
Craykon:如果 (…) { } 否则 { }。
y = int(input())if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0: print("闰年")else: print("平年")const y = Number(require("fs").readFileSync(0, "utf8").trim());const leap = (y % 4 === 0 && y % 100 !== 0) || y % 400 === 0;console.log(leap ? "闰年" : "平年");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 ? "闰年" : "平年");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 ? "闰年" : "平年"); }}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 ? "闰年" : "平年"); }}#include <iostream> int main() { int y; std::cin >> y; bool leap = (y % 4 == 0 && y % 100 != 0) || y % 400 == 0; std::cout << (leap ? "闰年" : "平年") << "\n";}#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;}y = 控制台.读行().转数字();如果 (y % 4 == 0 && y % 100 != 0 || y % 400 == 0){ 控制台.输出("闰年");}否则{ 控制台.输出("平年");}