早教吧作业答案频道 -->其他-->
求斐波那契数列log(n) pascal算法程序如题,注意是Log(n)
题目详情
求斐波那契数列log(n) pascal算法程序
如题,注意是Log(n)
如题,注意是Log(n)
▼优质解答
答案和解析
用矩阵加速
[ f(n+1) ] [1 1] [ f(n) ]
=
[ f(n) ] [1 0] [ f(n-1)]
不停的迭代就行了
递归求解,log(n)的
program fibonacci;
type
matrix=array[1..2,1..2] of qword;
var
c,cc:matrix;
n:integer;
function multiply(x,y:matrix):matrix;
var
temp:matrix;
begin
temp[1,1]:=x[1,1]*y[1,1]+x[1,2]*y[2,1];
temp[1,2]:=x[1,1]*y[1,2]+x[1,2]*y[2,2];
temp[2,1]:=x[2,1]*y[1,1]+x[2,2]*y[2,1];
temp[2,2]:=x[2,1]*y[1,2]+x[2,2]*y[2,2];
exit(temp);
end;
function getcc(n:integer):matrix;
var
temp:matrix;
t:integer;
begin
if n=1 then exit(c);
t:=n div 2;
temp:=getcc(t);
temp:=multiply(temp,temp);
if odd(n) then exit(multiply(temp,c))
else exit(temp);
end;
procedure init;
begin
readln(n);
c[1,1]:=1;
c[1,2]:=1;
c[2,1]:=1;
c[2,2]:=0;
if n=1 then
begin
writeln(1);
halt;
end;
if n=2 then
begin
writeln(1);
halt;
end;
cc:=getcc(n-2);
end;
procedure work;
begin
writeln(cc[1,1]+cc[1,2]);
end;
begin
init;
work;
end.
[ f(n+1) ] [1 1] [ f(n) ]
=
[ f(n) ] [1 0] [ f(n-1)]
不停的迭代就行了
递归求解,log(n)的
program fibonacci;
type
matrix=array[1..2,1..2] of qword;
var
c,cc:matrix;
n:integer;
function multiply(x,y:matrix):matrix;
var
temp:matrix;
begin
temp[1,1]:=x[1,1]*y[1,1]+x[1,2]*y[2,1];
temp[1,2]:=x[1,1]*y[1,2]+x[1,2]*y[2,2];
temp[2,1]:=x[2,1]*y[1,1]+x[2,2]*y[2,1];
temp[2,2]:=x[2,1]*y[1,2]+x[2,2]*y[2,2];
exit(temp);
end;
function getcc(n:integer):matrix;
var
temp:matrix;
t:integer;
begin
if n=1 then exit(c);
t:=n div 2;
temp:=getcc(t);
temp:=multiply(temp,temp);
if odd(n) then exit(multiply(temp,c))
else exit(temp);
end;
procedure init;
begin
readln(n);
c[1,1]:=1;
c[1,2]:=1;
c[2,1]:=1;
c[2,2]:=0;
if n=1 then
begin
writeln(1);
halt;
end;
if n=2 then
begin
writeln(1);
halt;
end;
cc:=getcc(n-2);
end;
procedure work;
begin
writeln(cc[1,1]+cc[1,2]);
end;
begin
init;
work;
end.
看了 求斐波那契数列log(n) ...的网友还看了以下:
已知椭圆x224+y216=1,直线l:x12+y8=1.P是l上点,射线OP交椭圆于点R,又点Q 2020-04-13 …
设l,m是两条不同的直线,a是一个平面,有下列四个命题:(1)若l⊥a,m⊂a,则l⊥m;(2)若 2020-05-13 …
写出下列算法的功能LinkListdemo(LinkListL){ListNode*q,*p;If 2020-05-17 …
定义点P(x0,y0)到直线l:Ax+By+C=0(A2+B2≠0)的有向距离为d=Ax0+By0 2020-07-09 …
)已知抛物线C:y2=8x的焦点为F,准线为l,P是l上一点,Q是直线PF与C的一个交点,若FP= 2020-07-31 …
W=p*V,功等于压强乘以变化的体积,p是变化之前的还是之后的?W=F*L=P*S*L=P*V假设是 2020-11-01 …
设l,m,n为三条不同的直线,a为一个平面,对于下列命题:①若l⊥a,则l与a相交;②若m⊂a,n⊂ 2020-11-02 …
口算题7.它+它.u=0.7×16-16×0.它=6÷1.它=9.它÷它.3=它l÷l+16÷l=1 2020-12-13 …
你帮我回答的化简函数很厉害,你还可以帮我化简几道题吗?用卡诺图法化简1题L=∑m(0,1,3,5,7 2020-12-23 …
物理问题探讨两等量正电荷带电体A和B相距L,P在L的中垂线上,A,B到P的距离是R,P在哪里时(R等 2021-01-12 …