输入描述:
输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。
输出描述:
为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)
代码如下:
void Trans (int m, int n)
{
if(n < 1 || n > 16) //转换的进制在2到16之间
return;
if(m < 0) //如果输入的数为负数
{
m = -m;
cout<<"-";
}
vector<int> a; //存放转换后的数字
while(m)
{
a.push_back(m%n);
m =m/n;
}
int i = 0;
vector<int>::reverse_iterator it = a.rbegin(); //逆序打印
while(it != a.rend())
{
if(*it == 10)
cout<<"A";
else if(*it == 11)
cout<<"B";
else if(*it == 12)
cout<<"C";
else if(*it == 13)
cout<<"D";
else if(*it == 14)
cout<<"E";
else if(*it == 15)
cout<<"F";
else
cout<<*it;
it++;
}
cout<<endl;
}
测试
int main()
{
int m,n;
cin >> m;
cin >> n;
Trans(m,n);
return 0;
}
结果显示