Вывод чисел фиббоначи и их номеров

Ряд чисел Фибоначчи задается следующим образом: первые два числа равны единице: F_{1}=1, F_{2}=1F 1 ​ =1,F 2 ​ =1, а каждое следующее число равно сумме двух предыдущих чисел: F_{i}=F_{i-1}+F_{i-2}F i ​

i−1 ​
+F i−2 ​
.

Таким образом, ряд чисел Фибоначчи начинается так: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55... Напишите программу, которая считывает натуральное число N и выводит первые N чисел Фибоначчи с их номерами.

Формат входных данных На вход программе подаётся натуральное число N.

Формат выходных данных Выведите первые N чисел Фибоначчи и их номера, каждую пару на отдельной строке. Формат вывода: i => F_{i}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 число и без номера, как это реализовать?


Ответы (2 шт):

Автор решения: Semitron

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

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
→ Ссылка