斐波那契数列求和1 pascal语言
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 04:04:03
斐波那契数列求和1 pascal语言
Description
f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2)其中n大于等于3.然后给出x,y,求出斐波那契数列的第x项到第y项的和.
Input
第一行两个整数x,y,其中x和y都不大于1000000
Output
一行一个整数,由于答案过大,所以你只需要输出答案模10000就可以了
Description
f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2)其中n大于等于3.然后给出x,y,求出斐波那契数列的第x项到第y项的和.
Input
第一行两个整数x,y,其中x和y都不大于1000000
Output
一行一个整数,由于答案过大,所以你只需要输出答案模10000就可以了
var
f:array[0..1000000]of longint;
x,y,ans,i,max:longint;
begin
read(x); read(y);
f[1]:=1; f[2]:=1;
if x>y then max:=x else max:=y;
for i:=3 to max do
f[i]:=(f[i-1]+f[i-2]) mod 10000;
for i:=1 to max do
f[i]:=(f[i]+f[i-1]) mod 10000;
ans:=f[y]-f[x-1];
write(ans);
end.
再问: 错了,用127 255这组数据就错了,答案变负了
再答: Sorry ; 加一句话你看看对不?我没调试> if ans
f:array[0..1000000]of longint;
x,y,ans,i,max:longint;
begin
read(x); read(y);
f[1]:=1; f[2]:=1;
if x>y then max:=x else max:=y;
for i:=3 to max do
f[i]:=(f[i-1]+f[i-2]) mod 10000;
for i:=1 to max do
f[i]:=(f[i]+f[i-1]) mod 10000;
ans:=f[y]-f[x-1];
write(ans);
end.
再问: 错了,用127 255这组数据就错了,答案变负了
再答: Sorry ; 加一句话你看看对不?我没调试> if ans