ПАСКАЛЬ! ПОМОГИТЕ ПОЖАЛУЙСТА! C использованием цикла WHILE ( не массив! ). Числа Фибоначчи
определяются: f0=f1=1, fn=fn-a+fn-2, при n=2, 3... (Т.у. каждое последующее число равно сумме двух предыдущих). Составить программу: а) нахождения К-го числа Фибоначчи; б)нахождение самого первого числа Фибоначчи, превышающего M; в) вычисления суммы всех чисел Фибоначчи, значения которых не превышает 1000. БУДУ ОЧЕНЬ БЛАГОДАРНА!Ответы на вопрос
Ответ:
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.
Объяснение:
Конечно, я могу помочь вам с этим. Вот пример программы на языке Pascal, реализующей требуемые функции:
а) Нахождение К-го числа Фибоначчи:
pascalprogram FibonacciKthNumber; var K, fibPrev, fibCurr, fibNext, i: integer; begin write('Введите номер K: '); readln(K); fibPrev := 1; fibCurr := 1; i := 2; while i < K do begin fibNext := fibPrev + fibCurr; fibPrev := fibCurr; fibCurr := fibNext; i := i + 1; end; writeln('K-е число Фибоначчи: ', fibCurr); end.
б) Нахождение самого первого числа Фибоначчи, превышающего M:
pascalprogram FirstFibonacciGreaterThanM; var M, fibPrev, fibCurr, fibNext: integer; begin write('Введите число M: '); readln(M); fibPrev := 1; fibCurr := 1; while fibCurr <= M do begin fibNext := fibPrev + fibCurr; fibPrev := fibCurr; fibCurr := fibNext; end; writeln('Первое число Фибоначчи, превышающее M: ', fibCurr); end.
в) Вычисление суммы всех чисел Фибоначчи, значения которых не превышают 1000:
pascalprogram SumOfFibonacciNumbers; var fibPrev, fibCurr, fibNext, sum: integer; begin fibPrev := 1; fibCurr := 1; sum := 0; while fibCurr <= 1000 do begin sum := sum + fibCurr; fibNext := fibPrev + fibCurr; fibPrev := fibCurr; fibCurr := fibNext; end; writeln('Сумма чисел Фибоначчи, значения которых не превышают 1000: ', sum); end.
Надеюсь, эти примеры помогут вам понять, как использовать цикл while для решения задач с числами Фибоначчи на языке Pascal. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
