890417520
幼苗
共回答了20个问题采纳率:85% 举报
放程序题要放完整题目描述,m,n范围,完整输入输出格式好么亲=.=!这个实际效果类似于生成斐波那契数列,实现通过计算前m个里面的减去前n-1里面的n,m会比较大小;n,m不要超过斐波那契数列第86项:420196140727489673var
n, m, temp:int64;
i, q:integer;
f, len:array [0..100] of int64;
//how many a in first p
function get(p:int64):int64;
var
ii,a:integer;
b, ans:int64;
begin
if p<=0 then exit(0);
a:=85;
b:=p;
ans:=0;
while (a>2) do
if b>len[a-1] then
begin
b:=b-len[a-1];
ans:=ans+f[a-1];
a:=a-2;
end else
a:=a-1;
exit(ans+1);
end;
begin
//preparation
f[1]:=1; len[1]:=1;
f[2]:=1; len[2]:=2;
for i:=3 to 85 do
begin
f[i]:=f[i-1] + f[i-2];
len[i]:=len[i-1] + len[i-2];
end;
//read and solve
readln(q);
for i:=1 to q do
begin
readln(n,m);
if (m begin
temp:=m; m:=n; n:=temp;
end;
writeln(get(m) - get(n-1));
end;
end.
1年前
4