简单模拟。
CODE:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
const int maxn = 101;
char s[maxn][maxn];
int main()
{
int c;
int cnt;
char str[201];
while(~scanf("%d", &c), c)
{
int i, j;
scanf("%s", str);
int l = strlen(str)/c;
cnt = 0;
for(i = 0 ; i < l; i++)
{
if(i%2 == 0)
{
for(j = 0 ; j < c; j++)
{
s[i][j] = str[cnt++];
}
}
else
{
for(j = c-1; j >= 0; j--)
{
s[i][j] = str[cnt++];
}
}
}
for(j = 0 ;j < c; j++)
{
for(i = 0 ; i < l ; i++)
{
printf("%c", s[i][j]);
}
}
puts("");
}
return 0;
}
#include <stdlib.h>
using namespace std;
const int maxn = 101;
char s[maxn][maxn];
int main()
{
int c;
int cnt;
char str[201];
while(~scanf("%d", &c), c)
{
int i, j;
scanf("%s", str);
int l = strlen(str)/c;
cnt = 0;
for(i = 0 ; i < l; i++)
{
if(i%2 == 0)
{
for(j = 0 ; j < c; j++)
{
s[i][j] = str[cnt++];
}
}
else
{
for(j = c-1; j >= 0; j--)
{
s[i][j] = str[cnt++];
}
}
}
for(j = 0 ;j < c; j++)
{
for(i = 0 ; i < l ; i++)
{
printf("%c", s[i][j]);
}
}
puts("");
}
return 0;
}