题目: |
program cz2011_4;
var n,a,b,c,d:longint;
procedure matric(var a,b,c,d:longint;n:longint);
var a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3:longint;
begin
if n=1 then begin a:=0;b:=1;c:=1;d:=1;exit;end;
matric(a1,b1,c1,d1,n div 2);
matric(a2,b2,c2,d2,n div 2);
a3:=a1*a2+b1*c2;
b3:=a1*b2+b1*d2;
c3:=c1*a2+d1*c2;
d3:=c1*b2+d1*d2;
if n mod 2=1 then begin
a:=b3;b:=a3+b3;c:=d3;d:=c3+d3;
end
else begin
a:=a3;b:=b3;c:=c3;d:=d3;
end;
end;
begin
read(n);
if n<3 then writeln(1)
else begin
matric(a,b,c,d,n-2);
writeln(c+d);
end;
end.
输入1:
3
输入2:
11
输出:2|89
|