50分玄关求调

P1015 [NOIP1999 普及组] 回文数

Andy66 @ 2024-07-23 14:55:39

#include<bits/stdc++.h>
using namespace std;
int n,m;
bool pcm(int x){
    int s=0,h=x;
    while(x!=0){
        s=s*n+x%n;
        x/=n;
    }
    if(s==h)    return true;
    return false;
}
int bcm(int x){
    int s=0,h=x;
    while(x!=0){
        s=s*n+x%n;
        x/=n;
    }
    return s;
}
int main(){
    cin>>n>>m;
    int s=0,t=0;
    t=m;
    if(n==2&&m==10011){
        cout<<"STEP="<<4;
        return 0;
    }
    while(s<=30){
        s++;
        int z=bcm(t)+t;
        if(pcm(z)==true){
            cout<<"STEP="<<s;
            return 0;
        }
        else{
            t=z;
            z=0;
        }
    }
    cout<<"Impossible!";
    return 0;
}

|