• Предмет: Информатика
  • Автор: BlackSea1
  • Вопрос задан 11 месяцев назад

ПАСКАЛЬ! ПОМОГИТЕ ПОЖАЛУЙСТА!
C использованием цикла WHILE ( не массив! ).
Числа Фибоначчи определяются: f0=f1=1, fn=fn-a+fn-2, при n=2, 3... (Т.у. каждое последующее число равно сумме двух предыдущих). Составить программу:
а) нахождения К-го числа Фибоначчи;
б)нахождение самого первого числа Фибоначчи, превышающего M;
в) вычисления суммы всех чисел Фибоначчи, значения которых не превышает 1000.

БУДУ ОЧЕНЬ БЛАГОДАРНА!

Ответы

Ответ дал: Shadow56
0

Ответ:

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.

Объяснение:

Вас заинтересует