测试样例不对求调
查看原帖
测试样例不对求调
305941
RayZhu楼主2025/8/31 16:40
#include <iostream>

using namespace std;

bool pld(int a1[],int len)
{
    for(int i=1;i<=len;i++)
    {
        if(a1[i]!=a1[len+1-i]) return false;
    }
    return true;

}
int main()
{
    int N,a1[101]={0},a2[101]={0},len;
    string M;
    cin>>N>>M;
    len=M.size();
    for(int i=1;i<=len;i++)//字符串转整数
    {
        if(M[len]>9) a1[i]=M[len-i]-'A'+10;//处理16进制
        else a1[i]=M[len-i]-'0';//处理2-10进制
    }
    for(int i=1;i<=30;i++)
    {
        if(pld(a1,len)==true)
        {
            cout<<i;
            return 0;
        }
        else //将数字反转并且相加
        {
            for(int j=1;j<=len;j++) a2[j]=a1[len-j+1];//将数字反转
            for(int j=1;j<=len;j++) a1[j]=a1[j]+a2[j];//将数字相加
            for(int j=1;j<=len;j++)//处理进位
            {
                if(a1[j]>=N)
                {
                    a1[j+1]+=a1[j]/N;
                    a1[j]/=N;
                }
                if(a1[len+1]!=0) len++;
            }
        }

    }
    cout<<"X";
    return 0;
}

2025/8/31 16:40
加载中...