大佬求助!实在不会写16进制的转换 第二个点WA

P1015 [NOIP1999 普及组] 回文数

xiaorunrun520 @ 2023-06-22 23:21:24


#include<bits/stdc++.h>
using namespace std;
int n,ans=0,b[1001],l=1;
char a[1001];
bool huiwen(char x[]){
    for(int i=0,j=l-1;i<=l/2;i++,j--){
        if(x[i] != x[j]) return true;
    }
    return false;
}
int main(){
    cin>>n>>a;
    l = strlen(a);
    int i =0,j=0; 
    while(huiwen(a)){
        l = strlen(a);
        for(i = l-1,j=0;i>=0;i--,j++){
            b[j] = (a[i]-'0') + (a[j]-'0');
        }
        for(int i = 0;i<l;i++){
            if(b[i] >= n){
                b[i] -= n;
                b[i+1] += 1;
                if(i==l-1){
                    l++;
                    break;
                }
            } 
        }
        for(int i=0;i<l;i++){
            a[i] = b[i] + '0';
        } 
        ans++;
        if(ans>30){
            cout<<"Impossible!";
            return 0;
        }
    }
    cout<<"STEP="<<ans;
    return 0;
}

by ghx0052 @ 2023-06-23 08:35:56

string ten_to_n(int n, int m)
{
    string s;
    while(n)
    {
    if(n%m >= 10)
            s = char('A'+ n%m - 10) + s; 
        else 
        s = to_string(n % m) + s; // to_string() int --> string
        n/=m;
    }
    return s;
}

by KouMoSir @ 2023-06-23 12:13:51

这是题目说明不清楚的问题,我认为;

样例二是输入了十六进制 AC27

题目中并没有说明清楚会输入字母,也没有说明会输入大写还是小写。

你需要处理ABCDEF的输入。


by xun_xun @ 2023-07-18 15:34:47

十六进制默认10用A表示,11用B表示...。。


|