37分代码求助

P2010 [NOIP2016 普及组] 回文日期

Qiania_L_F @ 2021-08-12 18:56:12

代码有点丑,勿喷( 并不知是哪里缺了,爆了7个wa……)

#include <bits/stdc++.h>

using namespace std;

char date1[8] , date2[8] ;
int date[2] , inyear , month[12] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 1 , 11 , 21 } , day[28] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 11 , 21 , 31 , 41 , 51 , 61 , 71 , 80 , 91 , 12 , 22 , 32 , 42 , 52 , 62 , 72 , 82 , 92 , 13 } ;
vector<int>year ;
int k , n , i1;

void ParseIn() {
    cin >> date1 ;
    for(int i = 0 ; i < 8 ; i++){
        date[0] = date[0] * 10 + date1[i] - '0' ;
    }
    inyear = date[0] / 10000 ;
    cin >> date2 ;
    for(int i = 0 ; i < 8 ; i++){
        date[1] = date[1] * 10 + date2[i] - '0' ;
    }
    for(int i = inyear ; i < date[1] / 10000 ; i++ ){
        year.push_back(i);
    }
}

void Core() {
    for(int i = 0 ; i < year.size() ; i++){
        k = year[i] % 100 ;
        n = year[i] / 100 ;
        for( int j ; j < 26 ; j++){
            if(k == month[j]){
                switch(n){
                    case 10 :
                        i1++ ;
                        continue ;
                    case 20 :
                        i1++ ;
                        continue ;
                    case 30 :
                        i1++ ;
                        continue ;
                    case 40 :
                        i1++ ;
                        continue ;
                    case 50 :
                        i1++ ;
                        continue ;
                    case 60 :
                        i1++ ;
                        continue ;
                    case 70 :
                        i1++ ;
                        continue ;
                    case 80 :
                        i1++ ;
                        continue ;
                    case 90 :
                        i1++ ;
                        continue ;
                    case 1 :
                        i1++ ;
                        continue ;
                    case 11 :
                        i1++ ;
                        continue ;
                    case 21 :
                        i1++ ;
                        continue ;
                }
            }
        }
        for( int j = 26 ; j < 27 ; j++){
            if(k == month[j]){
                switch(n){
                    case 10 :
                        i1++ ;
                        continue ;
                    case 30 :
                        i1++ ;
                        continue ;
                    case 40 :
                        i1++ ;
                        continue ;
                    case 50 :
                        i1++ ;
                        continue ;
                    case 60 :
                        i1++ ;
                        continue ;
                    case 70 :
                        i1++ ;
                        continue ;
                    case 80 :
                        i1++ ;
                        continue ;
                    case 90 :
                        i1++ ;
                        continue ;
                    case 1 :
                        i1++ ;
                        continue ;
                    case 11 :
                        i1++ ;
                        continue ;
                    case 21 :
                        i1++ ;
                        continue ;
                }
            }
        }
        for( int j = 27 ; j < 28 ; j++){
            if(k == month[j]){
                switch(n){
                    case 10 :
                        i1++ ;
                        continue ;
                    case 30 :
                        i1++ ;
                        continue ;
                    case 50 :
                        i1++ ;
                        continue ;
                    case 70 :
                        i1++ ;
                        continue ;
                    case 80 :
                        i1++ ;
                        continue ;
                    case 1 :
                        i1++ ;
                        continue ;
                    case 21 :
                        i++ ;
                        continue ;
                }
            }
        }
    }
}

void WriteOut() {
    cout << i1 ;
}

int main(){
    ParseIn();
    Core();
    WriteOut();
    return 0;
}

希望有dalao 能改ba(暗自祝福)


by HXR123 @ 2021-08-23 09:47:41

20011002 20011002

两组相同的数组你没考虑


|