Think:
1进制转换运算可思考转换为基底表示,类似于时间转换中将h,m转换为s表示一样,然后进行基底之间的运算
以下为Accepted代码
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
int main()
{
int T, c, k, d, i;
char st1[104], st2[104];
long long suma, sumb;
scanf("%d", &T);
while(T--)
{
scanf("%s %s %d", st1, st2, &c);
suma = sumb = 0;
int len1 = strlen(st1);
int len2 = strlen(st2);
for(i = 0; i < len1; i++)
{
if(st1[i] >= 'a' && st1[i] <= 'f'){
suma = suma * c + (st1[i]-'a'+10);
}
else
suma = suma * c + (st1[i]-'0');
}
for(i = 0; i < len2; i++)
{
if(st2[i] >= 'a' && st2[i] <= 'f'){
sumb = sumb * c + (st2[i]-'a'+10);
}
else
sumb = sumb * c + (st2[i]-'0');
}
if(suma < sumb){
k = 0, d = suma;
}
else {
k = suma / sumb;
d = suma % sumb;
}
printf("(%d,%d)\n", k, d);
}
return 0;
}