📄 2034057_re.c
字号:
# include <stdio.h>
# include <ctype.h>
# include <string.h>
# include <stdlib.h>
# define f(a) islower(a)?36+a-'a':(isdigit(a)?a-'0':a-'A'+10)
# define g(b) b<10?'0'+b:(b<36?'A'+b-10:'a'+b-36)
int w1, w2, n;
char ans[100];
void cal(char *num)
{
int i, t, s, l, len, mark;
char q[100];
len = strlen(num);
i = t = l = 0;
mark = 1;
while(1&&mark)
{
while(t<w2&&i<len)
{
t *= w1;
t += f(num[i]);
q[i] = '0';
i++;
}
s = t / w2;
if(!s)
mark = 0;
if(mark)
q[i-1] = g(s);
t -= s*w2;
}
ans[n++] = g(t);
q[i] = '\0';
for(i = 0; i < len; i++)
if(q[i]!='0')
{
cal(q);
break;
}
}
void input()
{
int i, t;
char num[100];
scanf("%d",&t);
while(t--)
{
scanf("%d%d%s",&w1,&w2,num);
n = 0;
cal(num);
printf("%d %s\n%d ",w1,num,w2);
for(i = n-1; i >= 0; i--)
printf("%c",ans[i]);
printf("\n\n");
}
}
int main()
{
input();
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -