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

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

相关推荐
Dave.B11 分钟前
用【vtk3DLinearGridCrinkleExtractor】快速提取3D网格相交面
算法·3d·vtk
yaoh.wang18 分钟前
力扣(LeetCode) 1: 两数之和 - 解法思路
python·程序人生·算法·leetcode·面试·跳槽·哈希算法
APIshop25 分钟前
Java爬虫1688详情api接口实战解析
java·开发语言·爬虫
Code Slacker35 分钟前
LeetCode Hot100 —— 滑动窗口(面试纯背版)(四)
数据结构·c++·算法·leetcode
brave and determined39 分钟前
CANN训练营 学习(day8)昇腾大模型推理调优实战指南
人工智能·算法·机器学习·ai实战·昇腾ai·ai推理·实战记录
Mr.Jessy43 分钟前
JavaScript高级:深浅拷贝、异常处理、防抖及节流
开发语言·前端·javascript·学习
bing.shao1 小时前
Golang 高并发秒杀系统踩坑
开发语言·后端·golang
liwulin05061 小时前
【PYTHON-YOLOV8N】关于YOLO的推理训练图片的尺寸
开发语言·python·yolo
总爱写点小BUG1 小时前
打印不同的三角形(C语言)
java·c语言·算法
yaoh.wang1 小时前
力扣(LeetCode) 27: 移除元素 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·双指针