Day1
T1vigenere密码
vijos截得不全导致题意可能会理解错,注意小写字母应该是先转大写进行变换,再根据情况看是否需要再转成小写。
然后,然后就没了啊。
1 #include<cstdio> 2 #include<cstring> 3 char ch[105],tt[1005],an[1005]; 4 int len,le,mi[105]; 5 int main(){ 6 scanf("%s %s",ch+1,tt+1); 7 len=strlen(ch+1);le=strlen(tt+1); 8 for(int i=1;i<=len;i++){ 9 if(ch[i]>='a')ch[i]=ch[i]-('a'-'A'); 10 mi[i]=ch[i]-130; 11 } 12 int h=1; 13 for(int i=1;i<=le;i++,h++){ 14 if(h>len)h=1; 15 int p=tt[i]>='a'?tt[i]-('a'-'A'):tt[i]; 16 p-=65; 17 for(int x='A';x<='Z';x++)if((x+mi[h])%26==p){an[i]=x;break;} 18 if(tt[i]>='a')an[i]+='a'-'A'; 19 } 20 for(int i=1;i<=le;i++)printf("%c",an[i]); 21 return 0; 22 }