这道题我写了一个递归函数,对于一个几乎不用递归的弱鸡来说,这是一件非常值得高兴的事。要注意一下计算机不能直接输出10以上进制的负数,所以要处理一下,详见注释
#include<iostream>
#include <iomanip>
using namespace std;
void zhuanhuan(int n,int r) {
int a, b;
a = n / r;
b = n % r;
if (a == 0) {
if (n < 0)
cout << "-" << hex << uppercase << -b;
else
cout << hex << uppercase << b;
return;
}
zhuanhuan(a, r);
if (b < 0)
cout << hex << uppercase << -b;
else
cout << hex << uppercase << b;
}
int main()
{
int n,r;
while(cin >>n>>r) {
zhuanhuan(n, r);
cout << endl;
}
return 0;
}