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

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

相关推荐
集思广益的灰太狼16 分钟前
变频器启动致PLC数据异常?西门子G120配合滤波器EMC抑制方案
人工智能·算法·工控·emc·电磁兼容·变频器·西门子
孙克旭_26 分钟前
单链表进阶实操:5 道常考面试题详细解析【Java 实现】
java·开发语言·数据结构·单链表
Titan202428 分钟前
HTTPS基础知识梳理
服务器·网络·c++·网络协议·学习·http·https
艾莉丝努力练剑30 分钟前
【AI大模型接入SDK】SSE协议
c++·学习·面试·大模型·sdk
斑马13931 分钟前
Linux软件编程学习笔记(五)——线程
开发语言·php
方方洛32 分钟前
vllm教程-03-架构设计
算法·架构
玄昌盛不会编程34 分钟前
LeetCode——2091. 从数组中移除最大值和最小值
java·算法·leetcode
吴声子夜歌38 分钟前
Java——数组和集合(一)
java·开发语言
呆呆敲代码的小Y1 小时前
Lua 上值(UpValue)
开发语言·junit·lua·lua上值·upvalue
如何取名1 小时前
结合实际业务进行LRU淘汰算法优化设计(数据库开发日志)
数据库·算法