一道pascal题目
2.Faibonacci数列前几项为:0,1,1,2,3,5,8,…,其规律是从第三项起,每项均等于前两项之和。求前30项,并以每行5个数的格式输出。最好用while循环...
2. Faibonacci数列前几项为: 0,1,1,2,3,5,8,…,其规律是从第三项起, 每项均等于前两项之和。求前30项, 并以每行5个数的格式输出。
最好用while循环来实现
谢谢! 展开
最好用while循环来实现
谢谢! 展开
6个回答
展开全部
1) 定义变量并初始化 i=0,j=1
2)定义一个数组存放 a[],并将数组的前两项赋值为 0,1
3)循环给数组赋值 定义变量k=2 循环28次即条件为 k<30
4)在循环内 a[k]=i+j; i=j; j=a[k]; k++;
5) 循环输出数组内容即可
2)定义一个数组存放 a[],并将数组的前两项赋值为 0,1
3)循环给数组赋值 定义变量k=2 循环28次即条件为 k<30
4)在循环内 a[k]=i+j; i=j; j=a[k]; k++;
5) 循环输出数组内容即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
program fb;
var i,j,k:longint;
a:array [0..31] of longint;
begin
i:=3;
j:=4;
a[1]:=0;
a[2]:=1;
write(a[1],' ',a[2],' ');
while i<>31 do
begin
a[i]:=a[i-1]+a[i-2];
if j>5 then
begin
writeln(a[i],' ');
j:=1;
end
else write(a[i],' ');
inc(i);
inc(j);
end;
end.
var i,j,k:longint;
a:array [0..31] of longint;
begin
i:=3;
j:=4;
a[1]:=0;
a[2]:=1;
write(a[1],' ',a[2],' ');
while i<>31 do
begin
a[i]:=a[i-1]+a[i-2];
if j>5 then
begin
writeln(a[i],' ');
j:=1;
end
else write(a[i],' ');
inc(i);
inc(j);
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
咳咳。。。
首先声明一下啊,斐波那契数列,第一项是1啊,不是0.。。
这个题可以多种方式实现,比如:递推,递归。。。
如果非要用while 循环实现,也不是不行,只是有点不好看。
我写给你嘛。
program faibonacc;
var f:array[1..30] of longint;
i,t:longint;
begin
fillchar(f,sizeof(f),0); //初始化
f[1]:=1; f[2]:=1;
t:=3;
while t<=30 do begin
f[t]:=f[t-1]+f[t-2];
t:=t+1;
end;
for i:=1 to 30 do begin
write(f[i]:3:0);
if i mod 5 =0 then writeln; //i如果是5的倍数,就跳行
end;
end.
首先声明一下啊,斐波那契数列,第一项是1啊,不是0.。。
这个题可以多种方式实现,比如:递推,递归。。。
如果非要用while 循环实现,也不是不行,只是有点不好看。
我写给你嘛。
program faibonacc;
var f:array[1..30] of longint;
i,t:longint;
begin
fillchar(f,sizeof(f),0); //初始化
f[1]:=1; f[2]:=1;
t:=3;
while t<=30 do begin
f[t]:=f[t-1]+f[t-2];
t:=t+1;
end;
for i:=1 to 30 do begin
write(f[i]:3:0);
if i mod 5 =0 then writeln; //i如果是5的倍数,就跳行
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
program long;
var
i,j,k,l,m,n:longint;
begin
readln(i);
j:=0;k:=1;
write(k,' ');
while l<>50 do
begin
l:=l+1;
m:=j+k;
write(m,' ');
j:=k;k:=m;
if l mod 5=0 then writeln;
end;
end.
var
i,j,k,l,m,n:longint;
begin
readln(i);
j:=0;k:=1;
write(k,' ');
while l<>50 do
begin
l:=l+1;
m:=j+k;
write(m,' ');
j:=k;k:=m;
if l mod 5=0 then writeln;
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询