hdu1129 #include #include #include #include using namespace std; map <char,int> mp; char strin[200]; int plaincode[200],ciphercod[200]; int main(void) { string excel="abcdefghijklmnopqrstuvwxyz."; mp[’’]=0;mp[‘a’]=1;mp[‘b’]=2;mp[‘c’]=3;mp[‘d’]=4;mp[‘e’]=5;mp[‘f’]=6;mp[‘g’]=7;mp[‘h’]=8;mp[‘i’]=9; mp[‘j’]=10;mp[‘k’]=11;mp[‘l’]=12;mp[‘m’]=13;mp[‘n’]=14;mp[‘o’]=15;mp[‘p’]=16;mp[‘q’]=17;mp[‘r’]=18; mp[‘s’]=19;mp[‘t’]=20;mp[‘u’]=21;mp[‘v’]=22;mp[‘w’]=23;mp[‘x’]=24;mp[‘y’]=25;mp[‘z’]=26;mp[’.’]=27; int lenth,i,k; while(cin>>k&&k!=0) { cin>>strin; lenth=strlen(strin); for(i=0;i<=lenth-1;i++) { ciphercod[i]=mp[strin[i]]; plaincode[i*k%lenth]=(ciphercod[i]+i)%28; } for(i=0;i<=lenth-1;i++) cout<<excel[plaincode[i]]; cout<<endl; } return 0; }