牛客网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输出结果

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

相关推荐
地平线开发者7 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮7 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者8 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考8 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx11 小时前
CART决策树基本原理
算法·机器学习
Wect11 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱12 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
肆忆_15 小时前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星18 小时前
虚函数表:C++ 多态背后的那个男人
c++
Gorway19 小时前
解析残差网络 (ResNet)
算法