题目链接:进制转换
解题思路:不停地除取余数,余数保存在栈中,再退栈就好了
#include<cstdio>
#include<cstring>
#include<iostream>
#include<stack>
using namespace std;
int n, r;
stack<int> ans;
char ou[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int main(){
int i, j, k;
char sgn;
while(cin >> n >> r){
sgn = 0;
if(n < 0){
n *= -1;
sgn = '-';
}
while(n){
ans.push(n % r);
n = n / r;
}
if(sgn == '-') cout << sgn;
while(!ans.empty()){
printf("%c", ou[ans.top()]);
ans.pop();
}
printf("\n");
}
return 0;
}