这个题目要求进行从2-62之间任意进制间的转换。
第一个是要转换的行数,以下第一个是输入进制,第二个数是转换的输出进制,第三个是要转换的数据。
输出按输入进制输入数据换行输出转换后的进制和数据输出。
#include "stdio.h"
#include "string.h"
int main()
{
int i,l,k,a,b,t,T[550],A[550];
char s[550],d[550];
scanf("%d",&t);
while(t--)
{
scanf("%d %d %s",&a,&b,s);
for(k=i=strlen(s);0<i--;)
T[k-i-1]=s[i]-((s[i]<58)?48:((s[i]<97)?55:61));
for(l=0;k;)
{
for(i=k;1<i--;)
{
T[i-1]+=T[i]%b*a;
T[i]/=b;
}
A[l++]=T[0]%b;
T[0]/=b;
for(;0<k&&!T[k-1];k--) ;
}
for(d[l]=i=0;i<l;i++)
d[l-i-1]=A[i]+((A[i]<10)?48:((A[i]<36)?55:61));
printf("%d %s\n%d %s\n\n",a,s,b,d);
}
return 0;
}