#include<iostream>
#include<string>
using namespace std;
int main()
{
while(1)
{
int i,key;
string plain,cipher;
int plaincode[70],ciphercode[70];
cin>>key;
if(!key)
break;
cin>>cipher;
for(i=0;i<cipher.size();i++)
{
switch(cipher[i])
{
case '_':ciphercode[i]=0;break;
case '.':ciphercode[i]=27;break;
default:ciphercode[i]=cipher[i]-96;
}
}
for(i=0;i<cipher.size();i++)
{
plaincode[(key*i)%cipher.size()]=
(ciphercode[i]+i)%28;
}
for(i=0;i<cipher.size();i++)
{
char c;
if(plaincode[i]==27)
c='.';
else
if(plaincode[i]==0)
c='_';
else
c=plaincode[i]+96;
cout<<c;
}
cout<<endl;
}
return 0;
}
zoj1006-Do the Untwist
最新推荐文章于 2017-12-18 16:45:16 发布