实在不知道错在哪里,求助
查看原帖
实在不知道错在哪里,求助
532067
rochcim楼主2021/8/12 22:52
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int main () {
    int a, b, j = 0, sum = 0, cnt = 0, holder;
    string c, rem[10001];
    cin >> a >> c >> b;
    for (int i = 0; i < c.length(); i++){
        if (c[i] == '0') continue;
        if (c[i] == '1') sum += 1 * pow(a, i);
        else if (c[i] == '2') sum += 2 * pow(a, i);
        else if (c[i] == '3') sum += 3 * pow(a, i);
        else if (c[i] == '4') sum += 4 * pow(a, i);
        else if (c[i] == '5') sum += 5 * pow(a, i);
        else if (c[i] == '6') sum += 6 * pow(a, i);
        else if (c[i] == '7') sum += 7 * pow(a, i);
        else if (c[i] == '8') sum += 8 * pow(a, i);
        else if (c[i] == '9') sum += 9 * pow(a, i);
        else if (c[i] == 'A') sum += 10 * pow(a, i);
        else if (c[i] == 'B') sum += 11 * pow(a, i);
        else if (c[i] == 'C') sum += 12 * pow(a, i);
        else if (c[i] == 'D') sum += 13 * pow(a, i);
        else if (c[i] == 'E') sum += 14 * pow(a, i);
        else sum += 15 * pow(a, i);
    }
    while (sum != 0) {
        holder = sum % b;
        sum = sum / b;
        if (holder == 15) rem[cnt++] = 'F';
        else if (holder == 14) rem[cnt++] = 'E'; 
        else if (holder == 13) rem[cnt++] = 'D';
        else if (holder == 12) rem[cnt++] = 'C';
        else if (holder == 11) rem[cnt++] = 'B';
        else if (holder == 10) rem[cnt++] = 'A';
        else if (holder == 9) rem[cnt++] = '9';
        else if (holder == 8) rem[cnt++] = '8';
        else if (holder == 7) rem[cnt++] = '7';
        else if (holder == 6) rem[cnt++] = '6';
        else if (holder == 5) rem[cnt++] = '5';
        else if (holder == 4) rem[cnt++] = '4';
        else if (holder == 3) rem[cnt++] = '3';
        else if (holder == 2) rem[cnt++] = '2';
        else if (holder == 1) rem[cnt++] = '1';
        else rem[cnt++] = '0';
    }
    for (int i = cnt; i >= 0; i--) 
        cout << rem[i];
    return 0;
}
我是把string和int来回转换了两回,先把输入转成十进制,再转成要求的进制。谢谢大佬帮看!
2021/8/12 22:52
加载中...