B3835 [GESP202303 一级] 每月天数

解题思路

  1. 问题分析

    • 需要根据输入的年份和月份,输出该月份的天数。

    • 特别处理2月份的天数,闰年为29天,平年为28天。

    • 其他月份的天数固定,可以直接查表。

  2. 关键步骤

    • 使用数组t存储每个月的天数(默认2月为28天)。

    • 判断给定年份是否为闰年:

      • 能被4整除但不能被100整除,或者能被400整除的年份是闰年。

    • 如果是闰年,将2月的天数改为29天。

    • 直接输出对应月份的天数。

  3. 代码逻辑

    • 初始化月份天数数组t

    • 读取输入的年份y和月份m

    • 判断闰年条件,更新2月的天数。

    • 输出t[m]作为结果。

      #include <bits/stdc++.h>
      using namespace std;
      
      int main() {
          // 初始化月份天数数组,t[0]不使用,t[1]到t[12]对应1月到12月的天数
          int t[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
          
          // 输入年份y和月份m
          int y, m;
          cin >> y >> m;
          
          // 判断闰年条件:能被4整除但不能被100整除,或者能被400整除
          if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
              t[2] = 29; // 闰年2月有29天
          }
          
          // 输出对应月份的天数
          cout << t[m];
          
          return 0;
      }

       

posted @ 2025-05-15 20:10  乐意丘  阅读(675)  评论(0)    收藏  举报