P1017进制转化

P1017进制转化

也不知道为啥,这么简单的题困扰了我这么长时间

#include<cstdio>
using namespace std;
int m;
//被除数= 除数*商 + 余数 = 除数 *(商 + 1) + (余数 - 除数);
void cal(int n) {
    if (n == 0) return;
    int p = n % m;
    n /= m;
    if (p < 0) p -= m, n++;
    cal(n);
    if (p <= 9) printf("%d", p);
    else printf("%c", p - 10 + 'A');
}

int main() {
    int n;
    scanf("%d%d", &n, &m);
    printf("%d=", n);
    cal(n);
    printf("(base%d)
", m);
    return 0;
}

#include
using namespace std;
int m;
//被除数= 除数*商 + 余数 = 除数 *(商 + 1) + (余数 - 除数);
void cal(int n) {
if (n == 0) return;
int p = n % m;
n /= m;
if (p < 0) p -= m, n++;
cal(n);
if (p <= 9) printf("%d", p);
else printf("%c", p - 10 + ‘A’);
}

int main() {
int n;
scanf("%d%d", &n, &m);
printf("%d=", n);
cal(n);
printf("(base%d) ", m);
return 0;
}

原文地址:https://www.cnblogs.com/xcfxcf/p/12301606.html