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

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

相关推荐
Bruce_Liuxiaowei1 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
叠层归一研究院1 小时前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型
人工智能·经验分享·算法·agi
Selvaggia2 小时前
Diffusion Model 的基本原理与模型架构
算法
aramae2 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
汉克老师3 小时前
CSP-J 2026 初赛试题解析(第一部分:选择题(8-15))精讲
c++·csp-j·小学生·学c++编程
wabs6663 小时前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
hanlin033 小时前
刷题笔记:力扣第41题-缺失的第一个正数
笔记·算法·leetcode
shehuiyuelaiyuehao4 小时前
算法50,分治归并,数组中的逆序对
java·算法
风合星语4 小时前
2026 ROS 2 Lyrical C++ 入门(五):Action 实战——任务反馈、取消与超时处理
c++·机器人·ros2·异步编程·lyrical
阳明山水4 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构