您的位置:首页 > 其它

UVA 641 - Do the Untwist

2013-03-27 22:29 309 查看
公式中的 mod 28看起来似乎多余

#include <iostream>
#include <memory.h>
#include <cstring>
#include <cstdio>
#define MAX 100

char str[MAX],table[MAX+30],rTable[MAX],plainText[MAX];
int k;

void init(){
int i=1;

table['_']=0,table['.']=27;
rTable[0]='_',rTable[27]='.';
for (char t='a';t<='z';++t,++i)table[t]=i,rTable[i]=t;
}
int main(){
init();
int i;
while (scanf("%d",&k)&&k)
{
memset(plainText,0,sizeof(plainText));
scanf("%s",str);
int len=strlen(str);

for (i=0;i<len;++i)
{
plainText[(k*i)%len]=rTable[(table[str[i]]+i)%28];
}
printf("%s\n",plainText);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: