Числа Фибоначчи - Turbo Pascal (33733)
Формулировка задачи:
Числа Фибоначчи (fn) определяются формулами
f0=f1=1, fn=fn-1+fn-2 при n=2,3,…..
определить f40
Решение задачи: «Числа Фибоначчи»
textual
Листинг программы
Function GetNFibonanchi(a,b,n : Longint) : Longint; Begin If n>3 then GetNFibonanchi:=GetNFibonanchi(a+b,a,n-1) else GetNFibonanchi:=a+b; End; Function GetNFib(nn : Longint) : Longint; Begin If nn<=1 then GetNFib:=0 else GetNFib:=GetNFibonanchi(1,0,nn); End; Begin Writeln(GetNFib(40)); End.
Объяснение кода листинга программы
- В функции
GetNFibonanchi
определены три переменные:a
,b
иn
. Переменнаяn
является целочисленной и представляет собой аргумент функции. - В условии
If n>3
проверяется, больше ли значение переменнойn
чем 3. Если это условие истинно, то вызывается рекурсивная функцияGetNFibonanchi
с аргументамиa+b
,a
иn-1
. Это означает, что функцияGetNFibonanchi
вызывается для чисел Фибоначчи, которые на единицу больше суммы двух предыдущих чисел, и для предыдущего числа Фибоначчи, которое на единицу меньше значения переменнойn
. - Если условие
If n>3
ложно, то значение функцииGetNFibonanchi
присваивается переменнойGetNFib
и равно сумме двух предыдущих чисел Фибоначчи. - В функции
GetNFib
определена только одна переменная:nn
. Она также является целочисленной и представляет собой аргумент функции. - В условии
If nn<=1
проверяется, меньше ли значение переменнойnn
чем 1. Если это условие истинно, то значение функцииGetNFib
присваивается переменнойGetNFib
и равно 0. - Если условие
If nn<=1
ложно, то значение функцииGetNFib
равно результату вызова функцииGetNFibonanchi
с аргументами1
,0
иnn
. - В основной части программы вызывается функция
GetNFib
с аргументом40
. Результат выводится на экран с помощью функцииWriteln
.