t o i o y
h p k n n
e l e a i
r a h s g
e c o n h
s e m o t
n l e w x
Note that Mo includes only letters and writes them all in lower case. In this example, Mo used the character ‘x’ to pad the message out to make a rectangle, although he could have used any letter.
Mo then sends the message to Larry by writing the letters in each row, alternating left-to-right and right-to-left. So, the above would be encrypted as
toioynnkpheleaigshareconhtomesnlewx
Your job is to recover for Larry the original message (along with any extra padding letters) from the encrypted one.
大水题
#include <stdio.h> #include <string.h> int main() { char s[30][200],str[300]; int n,i,j,k,len; while(~scanf("%d",&n),n) { scanf("%s",str); len = strlen(str); memset(s,'\0',sizeof(s)); k = 0; for(i = 0;i<len/n && k<len;i++) { for(j = 0;j<n;j++) { if(i%2) s[i][n-j-1] = str[k++]; else s[i][j] = str[k++]; } } for(i = 0;i<n;i++) { for(j = 0;j<len/n;j++) { printf("%c",s[j][i]); } } printf("\n"); } return 0; }