BNUOJ 1015 信息战(一)加密程序

来源:互联网 发布:阿里云主机干什么的 编辑:程序博客网 时间:2024/05/21 10:04
在战争时期,各个国家都要保证军队的行动保密性,所以在信息传达时会采取各种加密方法。有一天,A国安全局成员Oo(也就是传说中的ZSL),发明了一种对指令的加密方法。具体操作如下,取两个正整数X、Y,对于一段明文字符串,将其按行填入一个X行Y列的矩阵中(非字母不填、而且所有字母要求权转换为大写),若未填满,则按字母表顺序顺次填充(’A’…’Z’循环填充)。比如对于X=3,Y=3,明文为”Problem”时,矩阵填充后的结果为:
PRO
BLE
MAB

这样,Oo就得到了一个矩阵,将他按列输出就得到了Oo所要的的密文“PBMRLAOEB”。由于A国编程人员奇缺。所以Oo向你求助,希望你能够帮助他写一个加密程序,从而使得对于任意给定的X、Y以及明文,程序都能输出正确的密文。


Input

第一行X,Y(0 < X <= 200,0 < Y <= 200)。
第二行至末尾每行均为一个明文(保证明文中字母的个数N <= X*Y)。

Output

对于每一行明文输出对应的一行密文。

Sample Input

3 3Problemt  e        s t    l I  156-*/-  S tu 45/-90 N I v  \908()  8768 *er #!@$&  S a L 

Sample Output

PBMRLAOEBTTCEADSBELTCIADSBEUVSNEAIRL

c语言程序:

#include<stdio.h>#include<ctype.h>#include<string.h>int main(){int x=0,y=0;char matrix[200][200]={0};char data[200000]={0};scanf("%d%d",&x,&y);getchar();while(gets(data)){int len=strlen(data);int t=0;int c=0;for(int i=0;i<len;i++){if(isalpha(data[i])){matrix[t/y][t%y]=toupper(data[i]);t++;}}while(t<x*y){matrix[t/y][t%y]='A'+(c++)%26;t++;}for(int p=0;p<y;p++)for(int q=0;q<x;q++)printf("%c",matrix[q][p]);printf("\n");}return 0;}


0 0