这时候是时候改变一下写OJ解题的风格了,打算以后都写上OJ解题的思路和翻译
这个题题意很简单,就是看懂例子就可以了,然后具体要转换回去要进行蛇形填数的变换
注意关键思路:
蛇形填数!!!!!
蛇形填数!!!
蛇形填数!!!
然后填完数再进行第二次的写回去就好了- -
#include <iostream>
using namespace std;
int main(){
char str[][],name[];
int n,m,i,j,k,flag;
while(cin>>n &&n){
cin>>name;
j = i = m =;
flag = ;
while(name[m]){ //蛇形填数的四个状态
if(j<n &&flag ==){ //状态1
str[i][j] = name[m];
m++;j++;
}
else if(j==n){ //状态2
j--;flag = ;i++;
str[i][j] =name[m];
m++;j--;
}
else if(j>= &&flag ==){ //状态3
str[i][j]=name[m];
m++;j--;
}
else if(j<){ //状态4
j++;flag = ;i++;
str[i][j]=name[m];
m++;j++;
}
}
k = i;
for(j=;j<n;j++){ //按照顺序打印
for(i=;i<=k;i++){
cout<<str[i][j];
}
}
cout<<endl;
}
return ;
}