1055:判断闰年
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
判断某年是否是闰年。如果公元a年是闰年输出Y,否则输出N。
【输入】
输入只有一行,包含一个整数a(0 < a < 3000)。
【输出】
一行,如果公元a年是闰年输出Y,否则输出N。
【输入样例】
2006
【输出样例】
N
说明:
主要考查分支结构,可以使用if语句或switch语句解决本题。
本题更适合使用if语句解决。虽然官方把这题纳入switch部分,但估计是让if语句部分和switch语句部分的题目数量一致。
不管如何,if语句和switch语句可以互用,只是哪种方法更适合罢了。
思路分析:
闰年,有以下规律:
能被4整除且不能被100整除的为闰年,或者能被400整除的也是闰年。
例如100、1000、1100,能被4整除,但也能被100整除,所以不是闰年。
400,虽然能分别被4和100整除,但也能被400整除,所以是闰年。
2020,能被4整除,且不能被100整除,所以是闰年。
数据类型:输入的整数a的取值范围是(0 < a < 3000),所以可以选择int类型。
求解过程:
声明1个int类型变量a。
输入一个整数给变量a。
如果变量a能被4整除且不能被100整除,或者能被400整除,则输出'Y'。
否则,输出'N'。
参考代码 - C++:
// 方法1(if方法)
// 运算符&&的优先级比||高
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
cout << 'Y';
else cout << 'N';
return 0;
}
// 方法2(switch方法)
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
switch (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
{
case 0: cout << "N"; break;
case 1: cout << "Y";
}
return 0;
}
参考代码 - C语言:
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
printf("Y");
else printf("N");
return 0;
}