Срочно!!! Составить алгоритм и программу в ПаскалеВывести n-ое число Фибоначчи (1, 1, 2,...

0 голосов
40 просмотров

Срочно!!! Составить алгоритм и программу в Паскале
Вывести n-ое число Фибоначчи (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …).

Справка: Последовательность чисел, каждый член которой равен сумме двух предыдущих, имеет множество любопытных свойств. (http://elementy.ru/trefil/21136/Chisla_Fibonachchi)
Подсказка:
а) храним в памяти в каждый текущий момент три числа, текущее и два предыдущих;
б) перед началом вычислений f1=1, f2=1;
в) после вычисления текущего числа по формуле ft = f1 + f2 необходимо выполнить передвижку чисел f1 = f2 f2 = ft


Информатика (25 баллов) | 40 просмотров
Дан 1 ответ
0 голосов

Для решения создадим функцию Fib(n), в качестве аргумента она будет получать число n. Эта функция будет возвращать число, которое будет равно f(n-1) + f(n-2). То есть она вызывает себя 2 раза из самой себя до тех пор ,пока не дойдет до 1 или 2.
Добавим условие  на 1 и 2(if n <=2 then Fib:= 1), которое прекратит нашу рекурсию<br>PascalABC.NET

var

n: integer;

function Fib(n:integer): longint;
Begin
if n <=2 then Fib:= 1 else<br>Fib:= Fib(n - 1) + Fib(n - 2);
end;

Begin
readln(n);
Writeln(Fib(n));
end.

(8.8k баллов)
0

кстати,та программа, что ты составил,она не работает,пишет что ожидалось ; а встретилось var и ещё куча ошибок

0

это знания форматируют криво, ща исправим прогу

0

жду)

0

а кстати,мне ещё алгоритм нужно

0

не знаешь как?

0

ах тыж обманщик! у меня все работает. это ты неправильно скопировал, насчет алгоритма, сейчас попробую блок схему нарисовать, я в них не особо, я больше код пишу, если что в лс скину

0

го вк

0

я не могу тут,только зарегался

0

ало

0

ты здесь?