题目链接
题目描述
给定一个年份(整数),判断它是否为闰年。闰年的判定规则如下:
- 如果年份能被 400 整除,则为闰年。
- 或者,如果年份能被 4 整除但不能被 100 整除,也为闰年。
- 除以上两种情况外,都不是闰年。
输入描述:
输入一个整数 year
。
输出描述:
如果 year
是闰年,输出字符串 "yes";否则输出 "no"。
解题思路
本题的核心是将闰年的两条判定规则,准确地翻译成代码中的逻辑表达式。
我们可以用一个 if
语句来包含这两个条件,两个条件之间是"或"的关系。
- 条件1:
year % 400 == 0
(能被400整除) - 条件2:
year % 4 == 0 && year % 100 != 0
(能被4整除 且 不能被100整除)
将这两个条件用"或"(||
)连接起来,就构成了完整的判断逻辑:
if ( (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0) )
如果这个复合条件为真,则年份是闰年,输出 "yes"。否则,就不是闰年,输出 "no"。
代码
#include <iostream>
using namespace std;
int main() {
int year;
cin >> year;
// 将闰年的两个判断条件用"或"逻辑连接
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
// 将闰年的两个判断条件用"或"逻辑连接
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
System.out.println("yes");
} else {
System.out.println("no");
}
}
}
year = int(input())
# 将闰年的两个判断条件用 or 连接
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
print("yes")
else:
print("no")
算法及复杂度
- 算法:逻辑条件判断。
- 时间复杂度:
- 这是一个固定的逻辑判断,与输入值大小无关。
- 空间复杂度:
- 仅需常数空间存储变量。