奈樱. 2023-02-14 18:53 采纳率: 77.8%
浏览 49

代码中get_day()函数是什么意思,谁能帮我解答一下#include <iostream>

代码中get_day()函数是什么意思,谁能帮我解答一下

#include <iostream>
#include <algorithm>
using namespace std;

int days[ ] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

bool check(int year)
{
    return year % 400 == 0 || year % 4 == 0 && year % 100 != 0; //闰年2月多一天
}

int get_day(int year, int month)
{
    if(month == 2) return 28 + check(year);
    return days[month];
}

int main()
{
    int n;
    cin >> n;
    
    string ans1, ans2;  //ans1回文数 ans2为ababbaba形回文数
    bool flag1 = false, flag2 = false; //两个哨兵
    for (int i = n / 10000; i <= 9999; i ++) //枚举年份
    {
        string a = to_string(i); //to_string整转字
        string b = a; 
        reverse(b.begin(), b.end()); //反转b
        if(a + b <= to_string(n)) continue; //得到日期需大于输入日期
        
        int month = stoi(b.substr(0, 2)); //stoi字转整 substr分理出月份和天
        int day = stoi(b.substr(2, 2));
        if(month < 1 || month > 12) continue; //判断是否合法
        if(day < 1 || day > get_day(i, month)) continue;
        
        string s1 = a.substr(0, 2); //作为判断ababbaba型
        string s2 = a.substr(2, 2);
        if(!flag1) ans1 = a + b, flag1 = true;
        if(!flag2 && s1 == s2 && s1[0] != s1[1]) ans2 = a + b, flag2 = true; //判断ababbaba型

        if(flag1 && flag2) break; //得到两个回文数结束循环
    }
    
    cout << ans1 << endl;
    cout << ans2 << endl;
    return 0;
}


  • 写回答

3条回答 默认 最新

  • 嘉定世外的JinJiayang 2023-02-14 20:15
    关注

    #include就是导入iostream库(输入输出流)

    评论

报告相同问题?

问题事件

  • 创建了问题 2月14日

悬赏问题

  • ¥25 matlab可以将微分方程的解显示为相图形式吗
  • ¥35 Hadoop实训论文成品!任意标题价格可私急
  • ¥35 Hadoop实训论文成品!任意标题价格可私急
  • ¥15 全网 智慧园区系统 那个最好,希望推荐
  • ¥15 笔记本电脑持续蓝屏重启,昨晚放电后乱点进入indyde
  • ¥15 cloudflare域名已经用了一年了,突然之间finalshell证书签发错误怎么解决
  • ¥15 近端策略优化 PPO | 损失值计算问题
  • ¥20 高通移动端,安卓12,如何让wifi无视国家码启动6Gwifi,重新开机无需干涉自动连接
  • ¥35 Hadoop实训论文成品! 任意标题 价格可私 急
  • ¥15 程序实在不会写,要秃了