标签:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<cmath> 6 #include<map> 7 #include<queue> 8 using namespace std; 9 int a[32]; 10 char s[99990],ch[99990]; 11 int b[32]; 12 char q[65]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 13 void fun1(int j,char c){ 14 int i,k,m,n; 15 m=(int)c; 16 for(i=j*8+7;i>=j*8;i--){ 17 a[i]=m%2; 18 m/=2; 19 } 20 }//把字母换成二进制 21 int fun2(int j){ 22 int i,k,m,n; 23 for(i=j*6;i<=j*6+5;i++){ 24 if(a[i]!=0) 25 break; 26 } 27 m=0; 28 for(k=i;k<=j*6+5;k++){ 29 m=m*2+a[k]; 30 } 31 return m; 32 }//把24位二进制数字改编为十进制编号 33 void fun(){ 34 int i,j,k,m,n,l,r,z,y; 35 int st=strlen(s); 36 bool flag; 37 char c; 38 l=0; 39 for(i=0;i<st/3;i++){ 40 memset(a,0,sizeof(a)); 41 for(j=0;j<3;j++){ 42 c=s[i*3+j]; 43 fun1(j,c); 44 } 45 for(j=0;j<4;j++){ 46 k=fun2(j); 47 ch[l]=q[k]; 48 l++; 49 } 50 } 51 memset(a,0,sizeof(a)); 52 if(st%3==1){ 53 for(i=0;i<1;i++){ 54 c=s[st/3*3+i]; 55 fun1(i,c); 56 } 57 for(i=0;i<2;i++){ 58 k=fun2(i); 59 ch[l]=q[k]; 60 l++; 61 } 62 ch[l]=‘=‘; 63 l++; 64 ch[l]=‘=‘; 65 l++; 66 } 67 else if(st%3==2){ 68 for(i=0;i<2;i++){ 69 c=s[st/3*3+i]; 70 fun1(i,c); 71 } 72 for(i=0;i<3;i++){ 73 k=fun2(i); 74 ch[l]=q[k]; 75 l++; 76 } 77 ch[l]=‘=‘; 78 l++; 79 } 80 ch[l]=‘\0‘; 81 strcpy(s,ch); 82 }//字符串变换函数 83 int main() 84 { 85 int k,i,j,m,n; 86 int x,y,z; 87 int t,cas; 88 cas=0; 89 scanf("%d",&t); 90 while(t--){ 91 scanf("%d%*c",&k); 92 gets(s); 93 while(k--){ 94 fun(); 95 } 96 cas++; 97 printf("Case #%d: ",cas); 98 printf("%s\n",s); 99 } 100 return 0; 101 }
标签:
原文地址:http://www.cnblogs.com/acm31415/p/4786357.html