Antonio2 2025-04-15 15:51 采纳率: 0%
浏览 15

卡在回文日期过不去了

有没有能人能看看我的程序到底有什么问题QAQ
题目是蓝桥杯的2022的回文日期

#include<bits/stdc++.h>
using namespace std;
int n;
int fanzhuan(int x)
{
    int i=0;
    while(x)
    {
        i=i*10+x%10;
        x=x/10;
    }
    //cout<<i<<endl;
    return i;
}
int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
    cin>>n;
    //cout<<n<<endl;
    int k,ans1,ans2;
    for (int i=n/10000+1;i<9999;i++)
    {
        //cout<<i;
        k=fanzhuan(i);
        if(k/100<13 && k%100<=mon[k/100])
        {
            ans1=i*10000+fanzhuan(i);
            cout<<ans1<<endl;
            break;
        }
    }
    int i;
    for(i=n/1000000+1;i<99;i++)
    {
        int a=i*101;
        a=fanzhuan(a);
        if(a/100<13 && a%100<=mon[a/100] && i/10!=i%10)
        {
            ans2=fanzhuan(a)*10000+a;
            cout<<ans2;
            break;
        }
    }
    return 0; 
} 

  • 写回答

7条回答 默认 最新

  • 阿里嘎多学长 2025-04-15 15:51
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    卡在回文日期过不去了

    你遇到了蓝桥杯2022的回文日期题目卡在回文日期过不去了,这个问题可能是因为你对日期的处理方式不正确。

    在C++中,日期的处理可以使用<iomanip>头文件中的put_time函数。下面是一个简单的示例代码:

    #include <iomanip>
    #include <iostream>
    #include <ctime>
    
    int main() {
        time_t now = time(0);
        tm* ltm = localtime(&now);
        char buffer[128];
        strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", ltm);
        std::cout << buffer << std::endl;
        return 0;
    }
    

    这个代码使用localtime函数将当前时间转换为tm结构,然后使用strftime函数将tm结构转换为字符串。

    如果你想实现回文日期,可以使用以下代码:

    #include <iomanip>
    #include <iostream>
    #include <ctime>
    
    int main() {
        time_t now = time(0);
        tm* ltm = localtime(&now);
        char buffer[128];
        strftime(buffer, sizeof(buffer), "%Y-%m-%d", ltm);
        std::cout << buffer << std::endl;
        return 0;
    }
    

    这个代码将当前日期转换为字符串,并输出到控制台。

    如果你仍然遇到问题,可以提供更多的代码和错误信息,我将尽力帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月15日