标签:fx 20 int 字母 反反复复 ++ now Mo
20:反反复复
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
Mo和Larry发明了一种信息加密方法。他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一些随机字母使其成为一个完整的字母矩阵。例如,若信息是“There's no place like home on a snowy night”并且有5列,Mo会写成:
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注意Mo只会填入字母,且全部是小写形式。在这个例子中,Mo用字母“x”填充了信息使之成为一个完整的矩阵,当然他使用任何字母都是可以的。
Mo根据这个矩阵重写信息:首先从左到右写下第一行,然后从右到左写下第二行,再从左到右写下第三行……以此左右交替地从上到下写下各行字母,形成新的字符串。这样,例子中的信息就被加密为:toioynnkpheleaigshareconhtomesnlewx。
你的工作是帮助Larry从加密后的信息中还原出原始信息(包括填充的字母)。
- 输入
- 第一行包含一个整数(范围2到20),表示使用的列数。
第二行是一个长度不超过200的字符串。 - 输出
- 一行,即原始信息。
- 样例输入
-
5 toioynnkpheleaigshareconhtomesnlewx
- 样例输出
-
theresnoplacelikehomeonasnowynightx
- 来源
- East Central North America 2004
-
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 using namespace std; 6 char a[1001]; 7 int now=0; 8 char b[101][101]; 9 int main() { 10 int n,m; 11 cin>>n; 12 scanf("%s",&a); 13 int l=strlen(a); 14 int hang=l/n; 15 int i=1; 16 int j=1; 17 int fx=1;// 1右 2左 18 while(i*j!=(hang+1)*n) 19 { 20 if(fx==1) 21 { 22 b[i][j]=a[now]; 23 now++; 24 j++; 25 } 26 else if(fx==2) 27 { 28 b[i][j]=a[now]; 29 now++; 30 j--; 31 } 32 if(j==n+1) 33 { 34 i++; 35 j--; 36 fx=2; 37 } 38 if(j==0&&i!=1) 39 { 40 i++; 41 j++; 42 fx=1; 43 } 44 45 46 } 47 b[i][j]=a[now]; 48 /*for(int i=1;i<=hang;i++) 49 { 50 for(int j=1;j<=n;j++) 51 { 52 b[i][j]=a[now]; 53 now++; 54 } 55 }*/ 56 /*for(int i=1;i<=hang;i++) 57 { 58 for(int j=1;j<=n;j++) 59 cout<<b[i][j]; 60 cout<<endl; 61 }*/ 62 i=1,j=1; 63 int tot=0; 64 while(tot!=hang*n) 65 { 66 tot++; 67 cout<<b[i][j]; 68 i++; 69 if(i==hang) 70 { 71 tot++; 72 cout<<b[i][j]; 73 i=1; 74 j++; 75 } 76 } 77 78 return 0; 79 }
标签:fx,20,int,字母,反反复复,++,now,Mo 来源: https://blog.51cto.com/u_15239936/2864893
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。