求助!!!!!!全是“Impossible!”啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

P1015 [NOIP1999 普及组] 回文数

I_am_zhima @ 2022-03-12 14:56:48

#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,ans,a[100005],aa[100005],l;
string s;
bool pd(int x[]){//ok 回文数 
    for(int i=1;i<=l/2;i++)
        if(x[i]!=x[l-i+1]) return 0;
    return 1;
}
void in(){//ok 把s字符串附到a数组里
    int j=0;
    for(int i=s.length()-1;i>=0;i--) {
        if(s[i]>='0'&&s[i]<='9')//数字 
            a[++j]=s[i]-'0';
        else//十六进制的
            a[++j]=s[i]-'A'+10;
    }
}
void turn(int a[]){//ok 反转数字
    int j=0;
    for(int i=l;i>=1;i--)
        aa[++j]=a[i];//存到aa数组里 
}
void add(int a[],int b[]){//ok 高精加 
    l=s.length();
    for(int i=1;i<=l;i++){
        a[i]+=b[i];
        a[i+1]+=a[i]/n;
        a[i]%=n;
    }
    if(a[l+1]>0) l++;
}
int main(){
    cin>>n>>s;
    in();
    l=s.length();
    while(!pd(a)){
        turn(a);
        add(a,aa);
        ans++;
        if(ans>30) break;
    }
    if(ans>30) cout<<"Impossible!";
    else cout<<"STEP="<<ans;
    return 0;
}

by 蔡竣凯 @ 2022-03-12 15:00:14

#include<iostream>
#include<cstring>
using namespace std;
int n, a[101], b[101], ans, i;
void init(int a[]){
    string s;
    cin >> n >> s;
    memset(a, 0, sizeof(a));
    a[0] = s.length();
    for(i=1;i<=a[0]; i++){
        if(s[a[0]-i]>='0' && s[a[0]-i] <= '9')a[i] = s[a[0] - i] - '0';
        else a[i] = s[a[0] - i] - 'A' + 10;
    }
}
bool check(int a[]){
    for(int i = 1;i <= a[0]; i++){
        if(a[i] != a[a[0]-i+1])return false;
    }
    return true;
}
void add(int a[]){
    int k;
    for(int i = 1;i <= a[0];i++){
        b[i] = a[a[0]-i+1];
    }
    for(int i = 1;i <= a[0]; i++){
        a[i] += b[i];
    }
    for(int i = 1;i <= a[0]; i++){
        a[i+1]+=a[i]/n;
        a[i]%=n;
    }
    if(a[a[0]+1]>0)a[0]++;
}
int main(){
    init(a);
    if(check(a)){
        cout << 0 << endl;
        return 0;
    }
    ans = 0;
    while(ans <= 30){
        ans++;
        add(a);
        if(check(a)){
            cout << "STEP=" << ans << endl;
            return 0;
        }
    }
    cout << "Impossible!";
}

by I_am_zhima @ 2022-03-12 23:10:32

@蔡竣凯 我看了你的代码,可是我感觉没有区别啊!!

dalao 看看我哪里错了


by I_am_zhima @ 2022-03-12 23:11:17

我还是太弱了


|