传送门:HDU2031
题意:进制转换
题解:按规则计算即可,注意负数
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
long long n,r;
int ans[1000],i,shang,yu,k,f;
while(~scanf("%lld%lld",&n,&r))
{
if(n<0)
{
printf("-");
n=-1*n;
}
f=1;shang=n;
for(i=0;i<100;i++) ans[i]=0;
i=0;
while(f)
{
yu=shang%r;
shang=shang/r;
ans[i++]=yu;
if(shang<r) f=0;
}
ans[i]=shang;
if(shang<r) ans[i++]=shang;
for(i--;i>=0;i--)
{
if(ans[i]<=9) printf("%d",ans[i]);
else
{
switch (ans[i])
{
case 10:printf("A");break;
case 11:printf("B");break;
case 12:printf("C");break;
case 13:printf("D");break;
case 14:printf("E");break;
case 15:printf("F");break;
}
}
}
printf("\n");
}
return 0;
}