C++程序 检查闰年
什么是闰年?
一年有366天是闰年。
如何判断一年是否为闰年:
当以下条件满足时,该年为闰年:
- 年份是400的倍数。
- 年份是4的倍数且不是100的倍数。
以下是伪代码:
如果年份是400的倍数,则是闰年
否则,如果年份是100的倍数,则不是闰年
否则,如果年份是4的倍数,则是闰年
否则,不是闰年
示例:
// C++ program to check if a given
// year is a leap year or not
#include <bits/stdc++.h>
using namespace std;
bool checkYear(int year)
{
// If a year is multiple of 400,
// then it is a leap year
if (year % 400 == 0)
return true;
// Else If a year is multiple of 100,
// then it is not a leap year
if (year % 100 == 0)
return false;
// Else If a year is multiple of 4,
// then it is a leap year
if (year % 4 == 0)
return true;
return false;
}
// Driver code
int main()
{
int year = 2000;
checkYear(year) ? cout << "Leap Year":
cout << "Not a Leap Year";
return 0;
}
输出:
闰年
时间复杂度: 由于程序中只有if语句,因此其时间复杂度为O(1)。
辅助空间: O(1)
如何用一行代码编写上述代码?
// C++ program to check if a
// given year a leap year or not
// with One-liner expression
#include <bits/stdc++.h>
using namespace std;
bool checkYear(int year)
{
// Return true if the year is a multiple
// 0f 4 and not multiple of 100.
// OR year is multiple of 400.
return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
}
// Driver code
int main()
{
int year = 2000;
checkYear(year)?
cout << "Leap Year":
cout << "Not a Leap Year";
return 0;
}
输出:
闰年
时间复杂度: 由于程序中只有if语句,因此其时间复杂度为O(1)。
辅助空间: O(1)
如果年份是闰年,则程序输出1,否则输出0。
// C++ implementation to check
// if the year is a leap year
// using macros
#include <iostream>
using namespace std;
// Macro to check if a year
// is a leap year
#define ISLP(y) ((y % 400 == 0) ||
(y % 100 != 0) && (y % 4 == 0))
// Driver Code
int main()
{
int year = 2020;
cout << ISLP(year) << "";
return 0;
}
输出:
闰年
时间复杂度: 由于程序中只有if语句,因此其时间复杂度为O(1)。
辅助空间: O(1)