有人吗,帮我看看哪错啦
查看原帖
有人吗,帮我看看哪错啦
530570
Firrel_qaq楼主2022/3/20 14:26
#include <bits/stdc++.h>
using namespace std;

int x, a[100005],t; // 输入x进制
string S;

// char转数码
int charToInt(char c) {
    if('0' <= c && c <= '9') return c - '0';
    return c - 'A' + 10;
}
char intToChar2(int n) {
    if (n < 10) // 如果 n 小于 10
        return n + '0'; // 返回数字 n 对应的字符
    return  n + 'A' - 10;// 否则就是返回一个大写字母,例如 10->'A',11->'B'
}
int main() {
    cin >> S;
    x = 8;
    int len= S.length();
    for(int i = len-1; i>= 0; i--) a[len - 1 - i] = charToInt(S[i]);
    long long ans= 0, w= 1;
    for(int i = 0; i< 100; i++) {
        ans += w * a[i];
        w *= x;
    }
    while (ans)  {
        // t是目前已经记录到了第几位了
        a[t] = ans % x;
        ans = ans / x;
        t++;
    }
    for (int i = t - 1;i >= 0;i--) // 倒序输出数组中的元素,当然要转成字符
        cout << intToChar2(a[i]);
    return 0;
}

2022/3/20 14:26
加载中...