琨琨爸


私信TA

用户名:wangkunkun

访问量:353

签 名:

等  级
排  名 19783
经  验 671
参赛次数 0
文章发表 11
年  龄 0
在职情况 学生
学  校 南京市
专  业

  自我简介:

TA的其他文章

解题思路:

注意事项:

参考代码:

#include <iostream>

using namespace std;

bool ifhuiwen(int s[],int n){ //s从下标1开始,n表示长度

  for(int i=1;i<=n/2;i++)

    if(s[i]!=s[n-i+1]) return false;

  return true;

}

bool ifabab(int s[],int n){ //s从下标1开始,n表示长度

//abab型首先也是回文型,长度一定8位

   if(ifhuiwen(s,n)==false) return false;

   if(n!=8) return false;

   for(int i=3;i<=8;i++) {

      if(i==3||i==6||i==8) {if(s[i]!=s[1]) return false;}

      if(i==4||i==5||i==7) {if(s[i]!=s[2]) return false;}

   }

   return true;

}

int main(){

int n;  cin>>n;

int s[9]={0};

bool findhuiwen=false,findabab=false;

for(int i=n+1;i<=99991231;i++){  //i必须是从n+1开始,因为题目要求的是 输入日期后下一个回文日期 

int month,day;

month=i%10000/100; //必须%10000才能取到后四位. 

day=i%100;

if(month==0 || month >12) continue;

if(day==0 || day>32 )continue;

int cnt=0;

int temp=i;

for(;temp>0;temp/=10)  s[++cnt]=temp%10;

if( findhuiwen==false && ifhuiwen(s,cnt)==true) {

   findhuiwen=true;

   cout<<i<<endl;

}

if( findabab==false && ifabab(s,cnt)==true) {

   findabab=true;

   cout<<i<<endl;

   break;

}

}

return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区