69,373
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
char b[100001], c[9];
char t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,0,0,0,0,0,0, 10, 11, 12, 13, 14, 15};
int main()
{
int n, i, p, q, r, x;
scanf("%d", &n);
while (n--)
{
scanf("%s", b);
q = (p = strlen(b)) / 6, (r = p % 6) ? r : (q--, r = 6);
for (x = 0, i = r; i; i--) x += t[b[i - 1] - 48] * (1 << (r - i) * 4);
for (p = 8; x; x >>= 3) c[--p] = (x & 7) + 48;
printf("%s", &c[p]);
for (x = 0, p = 0; p < q; p++)
{
for (i = 0; i < 6; i++) x += t[b[p * 6 + r + i] - 48] * (1 << (5 - i) * 4);
for (i = 7; i >= 0; i--) c[i] = (x & 7) + 48, x >>= 3;
printf("%s", c);
}
puts("");
}
return 0;
}