求助 怎样小幅修改可以满足16进制要求
查看原帖
求助 怎样小幅修改可以满足16进制要求
1529781
HBQS楼主2025/1/12 23:24
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000;
int a[maxn]={0},b[maxn]={0},c[maxn]={0},N;
bool check(string s)
{
    string ss(s.rbegin(),s.rend());
    return ss == s;
}
int main()
{
    string s,num;
    cin>>N>>s;
    int ans = 0;
    while(!check(s))
    {
        string ss(s.rbegin(),s.rend());
        int len = max(s.length(),ss.length());
        for(int i = s.length()-1,j=0;i>=0;i--,j++)
        {
            a[j] = s[i] - '0';
        }
        for(int i = ss.length()-1,j=0;i>=0;i--,j++)
        {
            b[j] = ss[i] - '0';
        }
        for(int i = 0;i<len;i++)
        {
            c[i] += (a[i] + b[i]);
            c[i+1] += c[i]/N;
            c[i] %= N;
        }
        if(c[len])
            len++;
        s.clear();
        for(int i = len-1;i>=0;i--)
        {
            char ch = c[i] + '0';
            s+=ch;
        }
        cout<<s<<endl;
        ans++;
        memset(c,0,sizeof(c));
        if(ans==30)
        {
            cout<<"Impossible!";
            return 0;
        }
    }
    
    cout<<"STEP="<<ans;
}
/*Written by HBQS!*/

一开始没审好题 漏看了还要求一个16进制 写完后发现16进制的情况很难处理 不想改成int数组重新录入 有佬能看看怎么修改好么?

2025/1/12 23:24
加载中...