求帮助

P1015 [NOIP1999 普及组] 回文数

prophetcoding @ 2023-08-12 11:08:53

#include <bits/stdc++.h>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
using namespace std;
int main()
{
    int ans,j;//j进制数 
    int n[30],a=0;
    string shu;
    cin>>j>>shu;
    int i=0,i1=0;//i指位数,i1指判断是否是回文数 
    for  (i=0;i<shu.size();i++)
    {
        n[i+1]=shu[i]-48;//将string改为int数组 
    } 
    i++;//补全位数 
    for(int o=i,u=0;o>=1;o--,u++)
    {
        if (j==10)
        break;
        a+=n[i]*pow(j,u);//转换进制 
    }
    for (int o=1;o<=30;o++)
    {
        i=sizeof(a);
        for (int u=1,o=i;u<=i;u++,o--)
        {
            if (n[o]==n[u])
            i1++;
        }
        if (i1==i)
        {
            cout<<"STEP="<<o<<endl;//判断回文 
            return 0;
        }
        i1=0;
        for (int o=i,u=1;o>=1;o--,u++)
        {
            n[o]+=n[u];//回文数相加  
        }
    }
    cout<<"Impossible!"<<i<<endl;
    return 0;
}

|