一、閏年定義
閏年指公曆年份中,除以4餘數為0且除以100餘數不為0,或者除以400餘數為0的年份。
二、判斷閏年方法
1、通過if語句進行判斷
bool isLeapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return true; } else { return false; } }
2、利用三目運算符進行判斷
bool isLeapYear(int year) { return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? true : false; }
3、利用位運算進行判斷
bool isLeapYear(int year) { return !(year & 3) && (year % 100 || !(year % 400)); //等同於(year%4==0 && year%100!=0) || (year%400==0) }
三、錯誤示例
下面代碼的判斷條件有誤,不能正確判斷閏年:
bool isLeapYear(int year) { if (year % 4 == 0) { return true; } else { return false; } }
該段代碼不能正確判斷閏年,因為2000年就是閏年,但使用該代碼判斷會返回false。
四、完整代碼
#include <iostream> using namespace std; bool isLeapYear(int year) { return !(year & 3) && (year % 100 || !(year % 400)); } int main() { int year; cout <> year; if (isLeapYear(year)) { cout << year << "年是閏年" << endl; } else { cout << year << "年不是閏年" << endl; } return 0; }
以上代碼輸入一個年份,利用判斷函數判斷該年份是否是閏年,並輸出結果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/277067.html