- Числа Фибоначчи: циклом и рекурсией
- Вычисление n-го числа ряда Фибоначчи с помощью цикла while
- Вывод ряда чисел Фибоначчи с помощью цикла for
- Рекурсивное вычисление n-го числа ряда Фибоначчи
- Числа Фибоначчи на Python
- Введение
- Числа Фибоначчи циклом while
- Числа Фибоначчи циклом for
- Числа Фибоначчи рекурсией
- Заключение
Числа Фибоначчи: циклом и рекурсией
Числа Фибоначчи – это ряд чисел, в котором каждое следующее число равно сумме двух предыдущих.
Иногда ряд начинают с нуля.
В данном случае мы будем придерживаться первого варианта.
Вычисление n-го числа ряда Фибоначчи с помощью цикла while
Присвоим переменным fib1 и fib2 значения двух первых элементов ряда, то есть единицы.
Получим от пользователя номер элемента, значение которого требуется вычислить. Присвоим номер элемента переменной n .
Поскольку значения первых двух элементов ряда Фибоначчи нам уже известны и вычисления начинаем с третьего, количество проходов по телу цикла должно быть на 2 меньше значения n , то есть n — 2 .
Если пользователь вводит 1 или 2, тело цикла ни разу не выполняется, на экран выводится исходное значение fib2 .
- Сложить fib1 и fib2 , присвоив результат переменной для временного хранения данных, например, fib_sum .
- Переменной fib1 присвоить значение fib2 .
- Переменной fib2 присвоить значение fib_sum .
После окончания работы цикла вывести значение fib2 на экран.
fib1 = 1 fib2 = 1 n = input("Номер элемента ряда Фибоначчи: ") n = int(n) i = 0 while i n - 2: fib_sum = fib1 + fib2 fib1 = fib2 fib2 = fib_sum i = i + 1 print("Значение этого элемента:", fib2)
Пример выполнения программы:
Номер элемента ряда Фибоначчи: 10 Значение этого элемента: 55
fib1 = fib2 = 1 n = input("Номер элемента ряда Фибоначчи: ") n = int(n) - 2 while n > 0: fib1, fib2 = fib2, fib1 + fib2 n -= 1 print("Значение этого элемента:", fib2)
Вывод ряда чисел Фибоначчи с помощью цикла for
В данном случае выводится не только значение искомого элемента ряда Фибоначчи, но и все числа до него включительно. Для этого вывод значения fib2 помещен в цикл.
fib1 = fib2 = 1 n = int(input()) print(fib1, fib2, end=' ') for i in range(2, n): fib1, fib2 = fib2, fib1 + fib2 print(fib2, end=' ')
10 1 1 2 3 5 8 13 21 34 55
Рекурсивное вычисление n-го числа ряда Фибоначчи
- Если n = 1 или n = 2, вернуть в вызывающую ветку единицу, так как первый и второй элементы ряда Фибоначчи равны единице.
- Во всех остальных случаях вызвать эту же функцию с аргументами n — 1 и n — 2. Результат двух вызовов сложить и вернуть в вызывающую ветку программы.
def fibonacci(n): if n in (1, 2): return 1 return fibonacci(n - 1) + fibonacci(n - 2) print(fibonacci(10))
Допустим, n = 4. Тогда произойдет рекурсивный вызов fibonacci(3) и fibonacci(2). Второй вернет единицу, а первый приведет к еще двум вызовам функции: fibonacci(2) и fibonacci(1). Оба вызова вернут единицу, в сумме будет два. Таким образом, вызов fibonacci(3) возвращает число 2, которое суммируется с числом 1 от вызова fibonacci(2). Результат 3 возвращается в основную ветку программы. Четвертый элемент ряда Фибоначчи равен трем: 1 1 2 3.
Числа Фибоначчи на Python
Статьи
Введение
В статье разберём 3 способа получения ряда Фибоначчи на Python. Первые два способа будут с использованием циклов, а третий – рекурсивный.
Числа Фибоначчи – бесконечная последовательность чисел, каждое из которых является суммой двух предыдущих и так до бесконечности.
Числа Фибоначчи циклом while
Для начала создадим переменную, в которую будет вводиться длина ряда:
n = int(input('Введите длину ряда: '))
Далее создадим две переменные (f1 и f2), которые будут равняться начальным единицам и выведем их:
Создадим переменную i, которая будет равняться двум:
Добавим цикл, который не закончится, пока переменная i будет меньше переменной n:
Числа Фибоначчи на Python:
n = int(input('Введите длину ряда: ')) f1 = f2 = 1 print(f1, f2, end=' ') i = 2 while i < n: f1, f2 = f2, f1 + f2 # f1 приравнивается к f2, f2 приравнивается к f1 + f2 print(f2, end=' ') # Выводится f2 i += 1 print()
Числа Фибоначчи циклом for
Создадим переменную, в которую будет вводиться длина ряда:
n = int(input('Введите длину ряда: '))
Далее создадим две переменные (f1 и f2), которые будут равняться начальным единицам и выведем их:
Добавим цикл, который начинается с 2, и заканчивается на n:
for i in range(2, n): f1, f2 = f2, f1 + f2 # f1 приравнивается к f2, f2 приравнивается к f1 + f2 print(f2, end=' ') # Выводится f2
Числа Фибоначчи на Python:
n = int(input('Введите длину ряда: ')) f1 = f2 = 1 print(f1, f2, end=' ') for i in range(2, n): f1, f2 = f2, f1 + f2 print(f2, end=' ')
Числа Фибоначчи рекурсией
Для начала создадим рекурсивную функцию, назовём её fibonacci и добавим ей параметр n:
Добавим условие, что если n = 1, или n = 2, то возвращается единица, так как первый и второй элементы ряда Фибоначчи равны единице. Если же условие не срабатывает, то элементы складываются:
def fibonacci(n): if n == 1 or n == 2: # Если n = 1, или n = 2, вернуть в вызывающую ветку единицу, так как первый и второй элементы ряда Фибоначчи равны единице. return 1 return fibonacci(n - 1) + fibonacci(n - 2)
Числа Фибоначчи на Python:
def fibonacci(n): if n == 1 or n == 2: return 1 return fibonacci(n - 1) + fibonacci(n - 2) n = int(input()) print(fibonacci(n))
Заключение
В данной статье мы научились вычислять n-ное число ряда Фибоначчи на Python. Надеюсь Вам понравилась статья, удачи! 🙂