输入一个十进制数n,转换成r进制输出。(2 <= r <=16, r ≠ 10)。
#include<iostream>
#include<iomanip>
using namespace std;
//数制转换需要逆序输出,所以递归调用
void ttor(int n,int r)
{
if(n)
{
ttor(n/r,r);
cout<<setiosflags(ios::uppercase)<<hex<<n%r; //十六进制输出
}
}
int main()
{
int n,r;
while(cin>>n>>r)
{
if(n<0) //计算机里十六进制没有负数,所以要取反
{
n=-n;
cout<<"-";
ttor(n,r);
}
else if(!n) //0要特殊处理 {
cout<<"0"<<endl;
}
else
{
ttor(n,r);
}
cout<<endl;
}
return 0;
}