Программа которая считает числа фибоначчи

i−1 ​
+F i−2 ​
. Таким образом, ряд чисел Фибоначчи начинается так: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55. Напишите программу, которая считывает натуральное число N и выводит первые N чисел Фибоначчи с их номерами. Формат входных данных На вход программе подаётся натуральное число N. Формат выходных данных Выведите первые N чисел Фибоначчи и их номера, каждую пару на отдельной строке. Формат вывода: i => F_i=>F i ​

. Например, 8 => 21 Sample Input 1: 1 Sample Output 1: 1 => 1 Sample Input 2: 10 Sample Output 2: 1 => 1 2 => 1 3 => 2 4 => 3 5 => 5 6 => 8 7 => 13 8 => 21 9 => 34 10 => 55
x = int(input()) def fibonacci(n): if n in (1, 2): return 1 return fibonacci(n — 1) + fibonacci(n — 2) print(fibonacci(x))
но выводит только 1 число и без номера, как это реализовать?
Отслеживать
задан 9 мар 2021 в 16:24
21 1 1 серебряный знак 3 3 бронзовых знака

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Вот реализация вашего кода:

Производящая функция чисел Фибоначчи


x = int(input()) def fibonacci(n): if n in (1, 2): return 1 return fibonacci(n — 1) + fibonacci(n — 2) for i in range(1, x + 1): print(i, ‘=>’, fibonacci(i))

Но можно решить эту задачу и без рекурсии:

x = int(input()) a, b = 1, 1 for i in range(1, x + 1): print(i, ‘=>’, a) a, b = b, a + b
Отслеживать
ответ дан 7 авг 2021 в 0:17
362 1 1 серебряный знак 8 8 бронзовых знаков
print(x, «=>», fibonacci(x))
Отслеживать
ответ дан 9 мар 2021 в 16:28
48.7k 1 1 золотой знак 17 17 серебряных знаков 40 40 бронзовых знаков
да, поняла. а как сделать вывод всех строк до данного числа? (в задании есть пример с числом 10)
9 мар 2021 в 16:39

Читайте также:
Установка программ с правами администратора 7

9 мар 2021 в 17:02
9 мар 2021 в 17:51
11 мар 2021 в 7:07

    Важное на Мете

Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник: ru.stackoverflow.com

Числа Фибоначчи

Вывести на экран ряд чисел Фибоначчи, состоящий из N элементов. Значение N вводится с клавиатуры.

Числа Фибоначчи – это элементы числовой последовательности 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …, в которой каждое последующее число равно сумме двух предыдущих.

  • n – количество элементов ряда;
  • a , b – значения двух последних элементов ряда;
  • c – буферная (запасная) переменная;
  • i – счетчик.

Алгоритм решения задачи:

  1. Получить значение n .
  2. Присвоить a и b значения 0 и 1 соответственно (это первые числа ряда Фибоначчи). Вывести их на экран.
  3. Начиная с 3-го элемента до n ,
  1. выводить на экран сумму a и b ,
  2. временно сохранить значение b в переменной c ,
  3. записать в b сумму значений a и b ,
  4. присвоить 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

Источник: pas1.ru

Числа Фибоначчи

Числа Фибоначчи — это значения числовой последовательности, в которой, первые два числа равны единице, а каждый последующий элемент равен сумме предыдущих двух чисел.

Читайте также:
С клавиатуры вводится целое число составьте программу которая позволяет найти количество цифр

Последовательность Фибоначчи имеет вид:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610…

Функционально последовательность можно записать как:

Программа рекурсивного вычисления и вывода N первых членов последовательности Фибоначчи

program FibonacciNumbers; var N, i, f : integer; function FibonacciNumber(number : integer) : integer; begin if (number = 0) or (number = 1) then FibonacciNumber := 1 else FibonacciNumber := FibonacciNumber(number — 1) + FibonacciNumber(number — 2); end; begin write(‘N = ‘); readln(N); writeln(N, ‘ первых числа Фибоначчи’); for i := 0 to N — 1 do begin f := FibonacciNumber(i); write(f); if i < N — 1 then write(‘, ‘); end; readln; end.

Поиск чисел Фибоначчи с помощью рекурсивных вызовов очень не эффективно. Дело в том, что для вычисления каждого элемента необходимо сначала вычислить значения двух предыдущих, а для каждого из них — двух предыдущих, и так далее. Получаем дерево рекурсивных вызовов. Для оптимизации алгоритма, достаточно запоминать два предыдущих элемента ряда Фибоначчи.

Оптимизированная программа поиска чисел Фибоначчи

program FibonacciNumbers; var N, i, f : integer; function FibNum(num : integer) : integer; var nm1 : integer; nm2 : integer; begin nm1 := 1; nm2 := 1; if (num = 0) or (num = 1) then FibNum := 1 else for i := 2 to num do begin FibNum := nm1 + nm2; nm2 := nm1; nm1 := FibNum; end; end; begin write(‘N = ‘); readln(N); writeln(N, ‘ первых членов последовательности Фибоначчи’); for i := 0 to N — 1 do begin f := FibNum(i); writeln(‘fib(‘, i:2,’) = ‘, f:8); end; readln; end.

Источник: programm.top

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru