目录

  • C++判断闰年的方法
    • 方法一:标准条件判断
    • 方法二:简化逻辑表达式
    • 方法三:使用三元运算符
    • 方法四:使用位运算优化
    • 方法五:使用标准库(C++20及以上)
      • 使用方法示例
    • 闰年的判断规则:

C++判断闰年的方法

在C++中,判断一个年份是否为闰年有几种常见的方法。

方法一:标准条件判断

bool isLeapYear(int year) {
    if (year % 4 != 0) {
        return false;
    } else if (year % 100 != 0) {
        return true;
    } else if (year % 400 != 0) {
        return false;
    } else {
        return true;
    }
}

方法二:简化逻辑表达式

bool isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

方法三:使用三元运算符

bool isLeapYear(int year) {
    return (year % 400 == 0) ? true : 
           (year % 100 == 0) ? false : 
           (year % 4 == 0) ? true : false;
}

方法四:使用位运算优化

bool isLeapYear(int year) {
return ((year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0));
}

方法五:使用标准库(C++20及以上)

#include <chrono>

bool isLeapYear(int year) {
    return std::chrono::year{year}.is_leap();
}

使用方法示例

#include <iostream>

int main() {
    int year;
    std::cout << "请输入年份: ";
    std::cin >> year;
    
    if (isLeapYear(year)) {
        std::cout << year << "年是闰年" << std::endl;
    } else {
        std::cout << year << "年不是闰年" << std::endl;
    }
    
    return 0;
}

闰年的判断规则:

  1. 能被4整除但不能被100整除,或者
  2. 能被400整除

以上方法都遵循这一规则,只是实现方式不同。在实际应用中,方法二(简化逻辑表达式)是最常用且易于理解的实现方式。

更多推荐