ПАСКАЛЬ! ПОМОГИТЕ ПОЖАЛУЙСТА!
C использованием цикла WHILE ( не массив! ).
Числа Фибоначчи определяются: f0=f1=1, fn=fn-a+fn-2, при n=2, 3... (Т.у. каждое последующее число равно сумме двух предыдущих). Составить программу:
а) нахождения К-го числа Фибоначчи;
б)нахождение самого первого числа Фибоначчи, превышающего M;
в) вычисления суммы всех чисел Фибоначчи, значения которых не превышает 1000.
БУДУ ОЧЕНЬ БЛАГОДАРНА!
Answers & Comments
Ответ:
Program test;
var a,i,b,c,d,count:integer;
a1,i1,b1,c1,d1,count1,m1:integer;
a2,i2,b2,c2,d2,count2,summ2:integer;
begin
count := 1;
c := 0;
b := 1;
writeln('Введите номер элемента Фибонначи');
readln(a);
writeln('-------------------');
if a=1 then writeln(0);
if a=2 then writeln(1);
if a>2 then
while count<=a-2 do
begin
d := b + c;
c := b;
b := d;
count := count + 1;
end;
if a>2 then writeln(d);
writeln('-------------------');
begin
count1 := 1;
c1 := 0;
b1 := 1;
writeln('Введите число M');
readln(m1);
writeln('-------------------');
if m1=0 then writeln(1);
if m1=1 then writeln(2);
if m1>1 then
while true do
begin
d1 := b1 + c1;
c1 := b1;
b1 := d1;
count := count+ 1;
if d1>m1 then break;
end;
if m1>1 then writeln(d1);
writeln('-------------------');
end;
begin
summ2 := 1;1
count2 := 1;
c2 := 0;
b2 := 1;
writeln('-------------------');
while true do
begin
d1 := b1+ c1;
if d1>1000 then break;
c1 := b1;
b1 := d1;
count := count + 1;
summ2 := summ2 + d1;
writeln(summ2);
end;
writeln('-------------------');
end;
end.
Объяснение: