#include "iostream"
#include "string"
#include "algorithm"
using namespace std;
string str[200];
int main()
{
int num, len, i, j, r;
string input;
while (cin >> num && num)
{
for (i = 0; i < 200; i++)
str[i].clear();
cin >> input;
len = input.length();
r = len / num;
for (j = 0, i = 0; i < len; i++)//将字符串进行分组
{
if (i && i % num == 0)
j++;
str[j].push_back(input[i]);
}
for (i = 0; i < r; i++)//将字符串为奇数的进行倒置
{
if (i % 2 != 0)
reverse(str[i].begin(), str[i].end());
}
for (i = 0; i < num; i++)//字符串的输出
for (j = 0; j < r; j++)
cout << str[j][i];
cout << endl;
}
system("pause");
}
//别人的代码,我最开始都有想过这样的做法,但是发觉推公式的过程比较麻烦,所以就用简单易懂的思路写出了上面的代码!
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
char str[303];
int n;
while(scanf("%d",&n),n!=0)
{
cin>>str;
int len=strlen(str);
int m=len/n;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
int k;
if(j%2==1)
k=n-i-1+n*j;
else
k=i+n*j;
cout<<str[k];
}
cout<<endl;
}
}
poj 2039 To and Fro
最新推荐文章于 2017-04-07 16:37:15 发布