Последовательностью фибоначчи называется последовательность чисел a0, a1, an, где a0 = 0, a1 = 1, ak = ak-1 + ak-2 (k > 1). требуется найти n-е число фибоначчи. примечание. в программе запрещается использовать циклы. формат входных данных на вход программы поступает целое неотрицательное число n (n ≤ 30). формат выходных данных требуется вывести n-е число фибоначчи. пример входные данные 7 выходные данные 13

Koshaplay57 Koshaplay57    3   29.08.2019 03:50    37

Ответы
maksgibert61 maksgibert61  06.10.2020 02:03
Var n:integer;
function Fib(k:integer):integer;
begin
 if k=0 then Fib:=0
 else if k=1 then Fib:=1
      else Fib:=Fib(k-1)+Fib(k-2);
end;
begin
readln(n);
writeln(Fib(n));
end.

Пример:
10
55
ПОКАЗАТЬ ОТВЕТЫ
Amilina11 Amilina11  18.01.2024 19:38
Хорошо, давайте разберемся с этим вопросом.

Последовательность Фибоначчи - это последовательность чисел, где каждое число равно сумме двух предыдущих чисел. Начинается последовательность с 0 и 1. То есть первые несколько чисел Фибоначчи выглядят так: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 и так далее.

Нам нужно найти n-е число Фибоначчи, где n - это целое неотрицательное число, которое поступает на вход программы.

Для решения этой задачи без использования циклов, мы можем воспользоваться рекурсивной функцией.

Вот пошаговое решение:

1. Создайте функцию "fibonacci", которая будет принимать один аргумент - n.

2. Внутри функции проверьте базовые случаи. Если n равно 0, верните 0. Если n равно 1, верните 1.

3. Если n больше 1, рекурсивно вызовите функцию "fibonacci" для n-1 и n-2, и сложите их значения. То есть вызовите "fibonacci(n-1) + fibonacci(n-2)".

4. Верните полученное значение.

Вот как это выглядит на языке программирования Python:

def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)

Теперь, если мы вызовем функцию "fibonacci(7)", мы получим ответ 13, так как 13-е число Фибоначчи равно 13.

Заметим, что данный метод имеет некоторые недостатки при больших значениях n, так как он повторно вызывает функцию для одних и тех же значений. Если мы вызовем этот метод с n = 30, он может занять достаточно много времени и ресурсов.

Есть и другие, более эффективные способы решения этой задачи, используя математические формулы или запоминание уже вычисленных значений чисел Фибоначчи. Но для простоты и понятности, рекурсивный метод является хорошим началом.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика