[NOIP2000 提高组] 进制转换 - 洛谷https://www.luogu.com.cn/problem/P1017
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <cstring>
#include <set>
#include <cmath>
#include <map>
#include <cstdlib>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
const int MN = 65005;
const int MAXN = 2000010;
const int INF = 0x3f3f3f3f;
#define IOS ios::sync_with_stdio(false)
//负进制
int main() {
int n, r;
string ans = "";
scanf("%d %d", &n, &r);
cout << n << "=";
int t, tmp;
while (n != 0) {
t = n % r;
tmp = n / r;
if (t < 0) {
t -= r;
tmp++;
}
n = tmp;
if (t >= 10) {
char ch = 'A' + t - 10;
ans = ch + ans;
} else {
char ch = t + '0';
ans = ch + ans;
}
}
cout << ans << "(base" << r << ")\n";
return 0;
}