B.含蓄的情书
| |||||
Description | |||||
情书怎么才比较含蓄?我来教你。首先你需要几张4*4的表格,然后把你想写的话填进去。比如:你想说的话是"abcdefghijklmnopqrstu"(shen me gui),那么填入表格就成了这样: 第一张表: abcd efgh ijkl mnop 第二张表: qrst u--- ---- ---- 由于这段话比16个字长,所以填了两张表,要是更长就用更多的表,末尾空闲的地方用'-'来填充。 然后精彩的地方来了。你告诉妹子密码。密码有三种,用123表示,三种密码对应不同的加密方式。下面是三种密码分别加密出的话,简单观察你就会发现加密的规律了。 1:mieanjfbokgcplhd--uq---r---s---t 2:ponmlkjihgfedcba-----------utsrq 3:dhlpcgkobfjnaeimt---s---r---qu-- 好了,相信大家已经学会这项技术了。新一批的小学妹就要“进货”了,人数众多呀,情书加密工作比较困难,就请大家来帮忙啦。 | |||||
Input | |||||
多组测试数据 每组测试数据有两行, 第一行一个数k( 1 <= k <= 3 ),表示加密方式 第二行表示加密的情书(由大小写字母,数字,空格组成,长度不超过100) | |||||
Output | |||||
对于每组测试数据,输出加密后的密文。 | |||||
Sample Input | |||||
1 abcdefghijklmnopqrstu 2 a b c d 0 1 2 3 4 | |||||
Sample Output | |||||
mieanjfbokgcplhd--uq---r---s---t 3 2 1 0 d c b a---------------4 |
应该读完题目之后规律应该都明白了,直接贴代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int n,stl,i,j,k,f,f1;
char a[7][16],c[150],d[150];
while(cin>>n)
{
memset(d,0,sizeof(d));
memset(c,0,sizeof(c));
getchar();
cin.getline(c,145);
// puts(c);
f1=f=j=k=0;
stl=strlen(c);
k=stl/16;
if(stl%16>0)
{
k++;
}
for(i=0;i<k;i++)
{
for(j=0;j<16;j++)
{
if(f<stl)
{
a[i][j]=c[f];
f++;
}
else
{
a[i][j]='-';
}
}
}
/* for(i=0;i<k;i++)
{
for(j=0;j<16;j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}*/
if(n==1)
{
for(i=0;i<k;i++)
{
d[f1++]=a[i][12];
d[f1++]=a[i][8];
d[f1++]=a[i][4];
d[f1++]=a[i][0];
d[f1++]=a[i][13];
d[f1++]=a[i][9];
d[f1++]=a[i][5];
d[f1++]=a[i][1];
d[f1++]=a[i][14];
d[f1++]=a[i][10];
d[f1++]=a[i][6];
d[f1++]=a[i][2];
d[f1++]=a[i][15];
d[f1++]=a[i][11];
d[f1++]=a[i][7];
d[f1++]=a[i][3];
}
d[f1]='\n';
printf("%s",d);
}
else if(n==2)
{
for(i=0;i<k;i++)
{
d[f1++]=a[i][15];
d[f1++]=a[i][14];
d[f1++]=a[i][13];
d[f1++]=a[i][12];
d[f1++]=a[i][11];
d[f1++]=a[i][10];
d[f1++]=a[i][9];
d[f1++]=a[i][8];
d[f1++]=a[i][7];
d[f1++]=a[i][6];
d[f1++]=a[i][5];
d[f1++]=a[i][4];
d[f1++]=a[i][3];
d[f1++]=a[i][2];
d[f1++]=a[i][1];
d[f1++]=a[i][0];
}
d[f1]='\n';
printf("%s",d);
}
else if(n==3)
{
for(i=0;i<k;i++)
{
d[f1++]=a[i][3];
d[f1++]=a[i][7];
d[f1++]=a[i][11];
d[f1++]=a[i][15];
d[f1++]=a[i][2];
d[f1++]=a[i][6];
d[f1++]=a[i][10];
d[f1++]=a[i][14];
d[f1++]=a[i][1];
d[f1++]=a[i][5];
d[f1++]=a[i][9];
d[f1++]=a[i][13];
d[f1++]=a[i][0];
d[f1++]=a[i][4];
d[f1++]=a[i][8];
d[f1++]=a[i][12];
}
d[f1]='\n';
printf("%s",d);
}
}
}