👨💻博客主页:@花无缺
欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 花无缺 原创收录于专栏 【洛谷算法题】
文章目录
- 【洛谷算法题】P5716-月份天数【入门2分支结构】
- 🌏题目描述
- 🌏输入格式
- 🌏输出格式
- 🌏样例 #1
- 🌙样例输入 #1
- 🌙样例输出 #1
- 🌏样例 #2
- 🌙样例输入 #2
- 🌙样例输出 #2
- 🌏提示
- 🌏题解
- 🌏总结
【洛谷算法题】P5716-月份天数【入门2分支结构】
题目链接:【深基3.例9】月份天数 - 洛谷
🌏题目描述
输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。
🌏输入格式
输入两个正整数,分别表示年份 y y y 和月数 m m m,以空格隔开。
🌏输出格式
输出一行一个正整数,表示这个月有多少天。
🌏样例 #1
🌙样例输入 #1
1926 8
🌙样例输出 #1
31
🌏样例 #2
🌙样例输入 #2
2000 2
🌙样例输出 #2
29
🌏提示
数据保证 1583 ≤ y ≤ 2020 1583 \leq y \leq 2020 1583≤y≤2020, 1 ≤ m ≤ 12 1 \leq m \leq 12 1≤m≤12。
🌏题解
public static void P5716() {
Scanner in = new Scanner(System.in);
// count 数组存储一年中每个月份的天数
int[] count = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int year = in.nextInt(), month = in.nextInt();
// 如果是闰年, 就将 count 中 2 月的天数改为 29 天
if (isLeap(year)) {
count[2] = 29;
}
System.out.println(count[month]);
in.close();
}
// 判断年份是否是闰年
public static boolean isLeap(int y) {
if (y % 400 == 0 || y % 100 != 0 && y % 4 == 0) {
return true;
}
return false;
}
🌏总结
这个题要求我们求出某一年的某一个月有多少天,首先我们知道不管是哪一年,除了 2 月份的天数可能不一样之外,其他月份的天数都是固定的,所以我们只需要对 2 月份这个变量进行维护就可以了,首先我们将 12 个月的天数存储在一个数组 count 中,从下标 1 开始存储,这样就方便后面直接根据数组下标得出月份的天数,比如 1 月份的天数我们直接存储在下标为 1 的数组元素中,那么 count[1] 就是 1 月的天数。然后根据输入的年份判断该年是否是闰年,如果是闰年就将数组中 2 月份的天数改为 29 天,如果是平年,则是 28 天(默认值),然后根据数组下标和月份的对应关系,直接输入该月的天数。
作者:花无缺(huawuque404.com)
🌸欢迎
关注
我的博客:花无缺-每一个不曾起舞的日子都是对生命的辜负~
🍻一起进步-刷题专栏:【洛谷算法题】
💻Java题解同步仓库:https://github.com/huawuque404/Java-solution
🥇往期精彩好文:
📢【CSS选择器全解指南】
📢【CSS】CSS列表【CSS基础知识详解】
你们的点赞👍 收藏⭐ 留言📝 关注✅
是我持续创作,输出优质内容
的最大动力!
谢谢!