1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #include<stdio.h> #include<string.h> #define MAX 100005 char num[100]={'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; int ord[200]; char oric[MAX]; int ori[MAX]; int f;
void fin(int len){ int i; for(i=0;i<len;i++) if(ori[i]!=0)return; f=1; }
void fun(int a,int b,int len){ int i=0,j,r; while(ori[i]==0)i++; for(;i<len;i++){ r=ori[i]%b; ori[i]/=b; ori[i+1]+=r*a; } fin(len); if(!f)fun(a,b,len); printf("%c",num[r]); }
int main(){ int i,j,k,n,a,b,len; scanf("%d",&n); for(i='0';i<='9';i++){ ord[i]=i-'0'; } for(i='A';i<='Z';i++){ ord[i]=i-'A'+10; } for(i='a';i<='z';i++){ ord[i]=i-'a'+36; } for(i=1;i<=n;i++){ scanf("%d%d",&a,&b); scanf("%s",oric); len=strlen(oric); printf("%d ",a); puts(oric); printf("%d ",b); for(j=0;j<len;j++) ori[j]=ord[oric[j]]; f=0; fun(a,b,len); printf("\n\n"); } return 0; }
|