负数进制转换

P1017 [NOIP 2000 提高组] 进制转换

#include <bits/stdc++.h>
using namespace std;

#define ll long long 
#define pb push_back

typedef pair<int, int> PII; 

const int N = 1e7 + 10;
int n, r;

void zhuan(int u, int base){
	if(u == 0) return;
	int r = u % base;
	if(r < 0) r -= base, u += base;
	if(r >= 10) r = 'A' + r - 10;
	else r = r + '0';
	zhuan(u / base, base);
	printf("%c", r);
}
void solve(){
	scanf("%d%d", &n, &r);
	printf("%d=", n);
	zhuan(n, r);
	printf("(base%d)\n", r);
}
signed main(){
	ios::sync_with_stdio(false); 
	int _ = 1; 
	// cin >> _;
	while(_--){
		solve();		
	}
	system("pause");
    return 0;
}
posted @ 2025-05-30 11:06  awei040519  阅读(7)  评论(0)    收藏  举报