输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2
23 12
-4 3Sample Output
111
1B
-11
将数字n对数字R反复取余数,余数的逆序就是结果。
其中值得注意的就是输出字符加上一个数字的结果是一个整数,如果想要输出字符就要输出单独输出字符。
#include<iostream>
using namespace std;
char a[999];
int main()
{
long long n;
int r;
while(cin>>n>>r)
{
int flag=0;
if(n<0)
{
flag=1;
n=-n;
}
int q=0;
while(n!=0)
{
a[q]=n%r;
n=n/r;
q++;
}
q--;
if(flag)
cout<<"-";
for(int i=q;i>=0;i--)
{
char q;
if(a[i]<=9&&a[i]>=0)
q=a[i]+'0';
else
q=a[i]-10+'A';
cout<<q;
}
cout<<endl;
}
return 0;
}