输入一个十进制数 N N N,将它转换成 R R R 进制数输出。
在 10 ≤ R ≤ 16 10 \le R \le 16 10≤R≤16 的情况下,用’A’表示 10 10 10,用’B’表示 11 11 11,用’B’表示 11 11 11,用’C’表示 12 12 12,用’D’表示 13 13 13,用’E’表示 14 14 14,用’F’表示 15 15 15。
输入格式
输入包含两个整数 N ( N ≤ 10000 ) N(N \le 10000) N(N≤10000) 和 R ( 2 ≤ R ≤ 16 ) R(2 \le R \le 16) R(2≤R≤16)。
注意, N N N 有可能是负整数。
输出格式
输出一行,表示转换后的数。
样例输入
23 12
样例输出
1B
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
int a,b;
int f=0;
cin>>a>>b;
if(a<0)
f=1;
vector <int> ans;
for(;;)
{
ans.push_back(a%b);
a=a/b;
if(a==0)
break;
}
if(f==1)
cout<<"-";
vector<int> ::iterator it;
for(it=ans.end()-1;it!=ans.begin()-1;it--)
{
int x=abs(*it);
switch (x)
{
case 10 :cout<<"A";break;
case 11 :cout<<"B";break;
case 12 :cout<<"C";break;
case 13 :cout<<"D";break;
case 14 :cout<<"E";break;
case 15 :cout<<"F";break;
default :cout<<x;break;
}
}
return 0;
}