解题思路:
先用字符串读入,然后用两个字符数组处理,从
1到n循环,根据题目中给出的规律处理,每处理完一个字母就输出一个字母。
程序:
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.