Ряд Фибоначчи

Задача

Вывести на экран столько элементов ряда Фибоначчи, сколько указал пользователь. Например, если на ввод поступило число 6, то вывод должен содержать шесть первых чисел ряда Фибоначчи: 1 2 3 5 8 13.

Пояснение к задаче и алгоритм решения

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

В программах ниже первые два элемента ряда равны не по 1 каждый, а 1 и 2.

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

  1. Вывести сумму текущих значений последних двух элементов.
  2. Присвоить предпоследнему элементу значение последнего, а последнему сумму последнего и предпоследнего (это делается через буферную переменную).

Цикл выполняется до тех пор, пока переменная-счетчик, изначально равная 3, не достигнет числа, введенного пользователем.

Исходный код на языке программирования Pascal

var f1,f2,b,i,n: word;
begin
    readln(n);
    f1 := 1;
    f2 := 2;
    write(f1,' ',f2,' ');
    for i:=3 to n do begin
        write(f1+f2, ' ');
        b := f1;
        f1 := f2;
        f2 := b + f1;
    end;
    writeln;
end.

Пример(ы) выполнения программы на языке Pascal

9
1 2 3 5 8 13 21 34 55

Исходный код на языке программирования C

#include <stdio.h>
 
main() {
    unsigned int n,i,f1,f2,b;
    scanf("%d",&n);
    f1 = 1;
    f2 = 2;
    printf("%d %d ",f1,f2);
    for (i=3; i<=n; i++) {
        printf("%d ", f1+f2);
        b = f1;
        f1 = f2;
        f2 = b + f1;
    }
    printf("\n");
}

Пример(ы) выполнения программы на языке C

16
1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

Исходный код на языке программирования Python

n = int(input())
f1 = 1
f2 = 2
print(f1, f2, end=" ")
for i in range(3,n+1):
    print(f1+f2, end=" ")
    b = f1
    f1 = f2
    f2 = b+f1
print()

Пример(ы) выполнения программы на языке Python

12
1 2 3 5 8 13 21 34 55 89 144 233

Исходный код на языке программирования КуМир

алг ряд Фибоначчи
нач
  цел f1,f2,b,i,n
  ввод n
  f1 := 1
  f2 := 2
  если n >= 2 то вывод f1," ",f2," " все
  нц для i от 3 до n
    вывод f1+f2, " "
    b := f1
    f1 := f2
    f2 := f2+b
  кц
кон

Пример(ы) выполнения программы на языке КуМир

10
1 2 3 5 8 13 21 34 55 89

Исходный код на языке программирования Basic

input n
f1 = 1
f2 = 2
print f1 + " ";
print f2 + " ";
for i=3 to n
        print (f1+f2) + " ";
        b = f1
        f1 = f2
        f2 = f2+b
next i

Пример(ы) выполнения программы на языке Basic

6
1 2 3 5 8 13

Тема

Циклы

Уровень сложности

Средний

Дата публикации