牛客网NC22012:判断闰年问题详解

牛客网NC22012:判断闰年问题详解

📝 题目描述

题号 :NC22012(牛客网)
时间限制 :C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M

判断一个整数n是否是闰年。

📥 输入描述

输入一个整数n(1≤n≤2018)

📤 输出描述

是闰年输出"yes",否则输出"no"

🌰 示例

示例1:

复制代码
输入: 2000
输出: yes

示例2:

复制代码
输入: 1900
输出: no

🔍 问题分析

这个问题要求我们判断一个年份是否为闰年。在现代历法中,闰年的判定规则如下:

  1. 普通年能被4整除且不能被100整除的为闰年
  2. 世纪年能被400整除的是闰年

这两条规则可以合并为一个逻辑表达式:(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)

💡 解题思路

  1. 读取输入的年份n
  2. 使用闰年判定公式进行判断
  3. 根据判断结果输出"yes"或"no"

📊 代码实现

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    cin>>n;
    if(n%4==0&&n%100!=0||n%400==0)cout<<"yes"<<endl;
    else cout<<"no"<<endl;
    return 0;
}

📝 代码解释

  • 引入必要的头文件bits/stdc++.h,这是一个包含了大部分常用C++标准库的头文件
  • 定义变量n用于存储输入的年份
  • 通过cin读取用户输入的年份
  • 使用条件语句检查年份是否满足闰年条件:
    • n%4==0&&n%100!=0:年份能被4整除但不能被100整除
    • ||n%400==0:或者年份能被400整除
  • 如果条件成立,输出"yes",否则输出"no"

⏱️ 复杂度分析

  • 时间复杂度:O(1),只需要进行简单的算术运算和判断
  • 空间复杂度:O(1),只使用了常数级别的存储空间

🔑 知识点总结

  1. 闰年规则

    • 普通年份能被4整除但不能被100整除的是闰年
    • 世纪年份(能被100整除的年份)能被400整除的是闰年
  2. 逻辑表达式

    • 使用&&(与)和||(或)运算符组合多个条件
    • 注意运算符优先级,&&优先级高于||
  3. 输入输出

    • 使用cin读取输入
    • 使用cout输出结果

这个简单的问题是理解闰年规则和基础逻辑运算的好例子。在实际编程中,日期和时间处理是常见的任务,理解闰年的判定对于正确处理日期计算非常重要。

相关推荐
JieE2125 小时前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2121 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack201 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树2 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2122 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2122 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术2 天前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦2 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
clint4563 天前
C++进阶(1)——前景提要
c++