zoj 1006

来源:互联网 发布:babel js 编辑:程序博客网 时间:2024/04/29 19:39

给出plaintext 求 ciphertext

#include<stdio.h>#include<string.h>//这个程序,给出plaintext 求 ciphertext int main(){  int k,n,i,temp,c[75],p[75];  char ct[75],pt[75];  ct[0]='_',ct[27]='.';  for(i=1;i<=26;i++)    ct[i]='a'+i-1;  while(scanf("%d",&k)&&k)  {    scanf("%s",pt);    n=strlen(pt);    for(i=0;i<n;i++)    {      if(pt[i]=='_')        p[i]=0;      else if(pt[i]=='.')        p[i]=27;        else p[i]=pt[i]-'a'+1;    }    for(i=0;i<n;i++)    {      temp=(k*i)%n;      c[i]=(p[temp]-i)%28;      if(c[i]<0) c[i]+=28;            printf("%c",ct[c[i]]);    }     printf("\n"); } return 0;}    
给出 ciphertext 求plaintext 

#include<stdio.h>#include<string.h>//这个程序,给出 ciphertext 求plaintext int main(){  int k,n,i,temp,pos,c[75],p[75];  char ct[75],pt[75];  pt[0]='_',pt[27]='.';  for(i=1;i<=26;i++)    pt[i]='a'+i-1;  while(scanf("%d",&k)&&k)  {    scanf("%s",ct);    n=strlen(ct);    for(i=0;i<n;i++)    {      if(ct[i]=='_')        c[i]=0;      else if(ct[i]=='.')        c[i]=27;        else c[i]=ct[i]-'a'+1;    }    for(i=0;i<n;i++)    {      pos=k*i%n;      p[pos]=(c[i]+i)%28;    }    for(i=0;i<n;i++)      printf("%c",pt[p[i]]);    printf("\n"); } return 0;}    



原创粉丝点击