Числа Фибоначчи: циклом и рекурсией
Числа Фибоначчи – это ряд чисел, в котором каждое следующее число равно сумме двух предыдущих.
Иногда ряд начинают с нуля.
В данном случае мы будем придерживаться первого варианта.
Вычисление 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.
X Скрыть Наверх
Решение задач на Python
Числа Фибоначчи
Вывести на экран ряд чисел Фибоначчи, состоящий из N элементов. Значение N вводится с клавиатуры.
Числа Фибоначчи – это элементы числовой последовательности 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …, в которой каждое последующее число равно сумме двух предыдущих.
- n – количество элементов ряда;
- a , b – значения двух последних элементов ряда;
- c – буферная (запасная) переменная;
- i – счетчик.
Алгоритм решения задачи:
- Получить значение n .
- Присвоить a и b значения 0 и 1 соответственно (это первые числа ряда Фибоначчи). Вывести их на экран.
- Начиная с 3-го элемента до n ,
- выводить на экран сумму a и b ,
- временно сохранить значение b в переменной c ,
- записать в b сумму значений a и b ,
- присвоить a значение с .
Программа на языке Паскаль:
var a, b, c, i, n: integer; begin write('n = '); readln(n); a := 0; write(a,' '); b := 1; write(b,' '); for i := 3 to n do begin write(a + b, ' '); c := b; b := a + b; a := c; end; writeln; end.
Примеры выполнения программы:
n = 10 0 1 1 2 3 5 8 13 21 34
n = 15 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
Вывести последовательность из N чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13…).
Последовательность чисел Фибоначчи
Помогите, пожалуйста, с заданием. Последовательность чисел Фибоначчи U0,U1. получается по.Последовательность чисел Фибоначчи
Последовательность чисел Фибоначчи характеризуется тем, что она начинается с 0, 1, и каждый.Напечатать последовательность чисел Фибоначчи
Напечатать последовательность чисел Фибоначчи 1, 1, 2 , 3, 5, . и т.д, где каждое число равно.Найти, входит ли в последовательность чисел l-е число Фибоначчи
Дана упорядоченная последовательность натуральных чисел b произвольной длины. Найти, входит ли в.5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,0441 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#include #include int main() getch(); return 0; }
Вывести на экран столько элементов ряда Фибоначчи, сколько указал пользователь. Например, если на ввод поступило число 6, то вывод должен содержать шесть первых чисел ряда Фибоначчи: 1 2 3 5 8 13. PascalABC
Здравствуйте вот такая задача на языке программирования питон . Есть какой то список времени и полетов допустим 04:35- Таллинн06:15-Питер06:30 Калинин … град07:29 Сочи 08:00 Урал20:00- Москва Надо написать такую программу чтоб она искала самый забитый слот и выписывала нам время через запятую слот это время меньше 60 минут между полетами здесь это 06:15 06:30 07:29 и 08:00помогите пожалуйста или просто дайте подсказку как сделать.
Допоможіть!!БУДЬ ЛАСКА. ДАМ 30 БАЛІВ ЧИ БІЛЬШЕ. БУДЬ ЛАСКА! ЗАВТРА ЗДАВАТИ
помогите СРОЧНО.
помогите СРОЧНО. Нажми на кнопку «Налево», затем на кнопку «Направо» Восстанови проект Алгоритм работы проекта: — когда нажата кнопка «Налево», спрайт плавно идёт нале … во; — когда нажата кнопка «Направо», спрайт плавно идёт направо. пж кто может сказать координаты спрайта Nano