//这是我写的,虽然逻辑有点乱,但测试都过了,却过不了OJ
#include<iostream>
using namespace std;
int a[100];
char b[7];
int n,r;
int change_s(int n,int r)
{
int count=0;
if(r>10)
{
b[0]='A';
for(int i=1;i<7;i++)
{
b[i]=b[i-1]+1;
}
while(n!=0)
{
a[count]=n%r;
n=n/r;
count++;
}
for(int j=count-1;j>=0;j--)
{
if(a[j]<10)
cout<<a[j];
else
{
for(int i=0;i<7;i++)
{
if(a[j]-10==i)
cout<<b[i];
}
}
}
cout<<endl;
return 0;
}
if(n<0)
{
n=-n;
while(n!=0)
{
a[count]=n%r;
n=n/r;
count++;
}
cout<<"-";
for(int j=count-1;j>=0;j--)
{
cout<<a[j];
}
cout<<endl;
return 0;
}
while(n!=0)
{
a[count]=n%r;
n=n/r;
count++;
}
for(int j=count-1;j>=0;j--)
{
cout<<a[j];
}
cout<<endl;
return 0;
}
int main()
{
while(cin>>n>>r)
{
change_s(n,r);
}
return 0;
}
//借鉴前辈的代码
#include<iostream>
using namespace std;
char a[100];
int n,r,temp,len;
int change(int n,int r)
{
int i=0;
if(n>0) //考虑n为负数的情况
temp=n;
else
temp=-n;
while(temp)
{
a[i]=temp%r+'0';
if(a[i]-'9'>0) a[i]=a[i]-'9'+64;//判断存的是数字还是字母
temp/=r;
i++;
}
len=i;
return 0;
}
int main()
{
int n,r;
while(cin>>n>>r)
{
len=0;//初始化
change(n,r);
if(n<0)
cout<<"-";
for(int i=len-1;i>=0;i--)
{
cout<<a[i];
}
cout<<endl;
}
return 0;
}