P1015#1#3WA其余RE求助!!
  • 板块题目总版
  • 楼主justinjia
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/3/8 21:30
  • 上次更新2023/11/5 02:17:21
查看原帖
P1015#1#3WA其余RE求助!!
373226
justinjia楼主2021/3/8 21:30

题目板块发了,没人回……

#include<stdio.h>
int char_int(char a){
    switch(a){
        case '0':
            return 0;
            break;
        case '1':
            return 1;
            break;
        case '2':
            return 2;
            break;
        case '3':
            return 3;
            break;
        case '4':
            return 4;
            break;
        case '5':
            return 5;
            break;
        case '6':
            return 6;
            break;
        case '7':
            return 7;
            break;
        case '8':
            return 8;
            break;
        case '9':
            return 9;
            break;
        case 'A':
            return 10;
            break;
        case 'B':
            return 11;
            break;
        case 'C':
            return 12;
            break;
        case 'D':
            return 13;
            break;
        case 'E':
            return 14;
            break;
        case 'F':
            return 15;
            break;
        default:
            break;
    }
}
char int_char(int a){
    switch(a){
        case 0:
            return '0';
            break;
        case 1:
            return '1';
            break;
        case 2:
            return '2';
            break;
        case 3:
            return '3';
            break;
        case 4:
            return '4';
            break;
        case 5:
            return '5';
            break;
        case 6:
            return '6';
            break;
        case 7:
            return '7';
            break;
        case 8:
            return '8';
            break;
        case 9:
            return '9';
            break;
        case 10:
            return 'A';
            break;
        case 11:
            return 'B';
            break;
        case 12:
            return 'C';
            break;
        case 13:
            return 'D';
            break;
        case 14:
            return 'E';
            break;
        case 15:
            return 'F';
            break;
        default:
            break;
    }
}
struct int_{
    int a[200];
    int n,len;
    int_ operator+(int_ x){
        int_ ans;
        for(int i=0;i<len;i++)
            ans.a[i]=a[i]+x.a[i];
        for(int i=0;i<len;i++){
            ans.a[i+1]+=ans.a[i]/n;
            ans.a[i]%=n;
        }
        while(ans.a[ans.len]){
            ans.a[ans.len+1]+=ans.a[ans.len]/n;
            ans.a[ans.len++]%=n;
        }
        return ans;
    }
    int_ opposite(void){
        int_ ans;
        ans.len=len;
        for(int i=0;i<len;i++)
            ans.a[i]=a[len-1-i];
        return ans;
    }
    bool ispal(void){
        for(int i=0;i<len/2;i++)
            if(a[i]!=a[len-i-1])
                return 0;
        return 1;
    }
}m;
int main(void){
    m.len=0;
    scanf("%d\n",&m.n);
    char tmp;
    while((tmp=getchar())!=EOF)
        m.a[m.len++]=char_int(tmp);
    for(int i=0;i<=30;i++){
        if(m.ispal()){
            printf("STEP=%d",i);
            return 0;
        }
        m=m+m.opposite();
    }
    printf("Impossible!");
    return 0;
}
2021/3/8 21:30
加载中...