2012年分区联赛提高组第一天第一题…

2012年分区联赛提高组第一天第一题 <wbr>Vigenère密码  
2012年分区联赛提高组第一天第一题 <wbr>Vigenère密码  
2012年分区联赛提高组第一天第一题 <wbr>Vigenère密码  
2012年分区联赛提高组第一天第一题 <wbr>Vigenère密码


解题思路: 先用字符串读入,然后用两个字符数组处理,从 1n循环,根据题目中给出的规律处理,每处理完一个字母就输出一个字母。


程序:
const
  maxn=1000;
var
  st:ansistring;
  a,b:array[1..maxn]of char;
  n,m,x,i,w,s:longint;
begin
  readln(st);
  m:=length(st);
  for i:=1 to m do
    b[i]:=st[i];
  st:='';
  readln(st);
  n:=length(st);
  for i:=1 to n do
    a[i]:=st[i];
  for i:=1 to n do
    begin
      x:=(i-1) mod m+1;
      if (ord(a[i])<97)and(ord(b[x])>96) then b[x]:=chr(ord(b[x])-32);
      if (ord(a[i])>96)and(ord(b[x])<97) then b[x]:=chr(ord(b[x])+32);
      if ord(a[i])<97 then s:=65 else s:=97;
      w:=ord(a[i])-ord(b[x])+s;
      if w>s+25 then w:=w-25;
      if w
      write(chr(w));
    end;
end.


版权属于: Chris
转载时必须以链接形式注明原始出处及本声明。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值