Генерация последовательности Фибоначчи на C

CBeginner
Практиковаться сейчас

Введение

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

Чтение количества элементов

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

Сначала создадим новый файл C в каталоге ~/project:

cd ~/project
nano fibonacci.c

Теперь напишем начальный код для чтения количества элементов от пользователя:

#include <stdio.h>

int main() {
    int n;

    printf("Введите количество элементов в последовательности Фибоначчи: ");
    scanf("%d", &n);

    printf("Вы ввели %d элементов.\n", n);

    return 0;
}

Скомпилируем и запустим программу, чтобы проверить ввод:

gcc fibonacci.c -o fibonacci
./fibonacci

Пример вывода:

Введите количество элементов в последовательности Фибоначчи: 10
Вы ввели 10 элементов.
Объяснение
  • scanf("%d", &n) считывает целое число от пользователя и сохраняет его в переменной n
  • Мы используем printf(), чтобы запросить у пользователя данные и отобразить введённое количество элементов.
  • Программа проверяет, что мы можем успешно получить ввод пользователя для длины последовательности.

Использование цикла для генерации элементов

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

Обновим файл fibonacci.c:

cd ~/project
nano fibonacci.c

Теперь изменим код, чтобы сгенерировать элементы Фибоначчи с помощью цикла for:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("Введите количество элементов в последовательности Фибоначчи: ");
    scanf("%d", &n);

    printf("Последовательность Фибоначчи из %d элементов:\n", n);

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d ", next);
    }
    printf("\n");

    return 0;
}

Скомпилируйте и запустите программу:

gcc fibonacci.c -o fibonacci
./fibonacci

Пример вывода:

Введите количество элементов в последовательности Фибоначчи: 10
Последовательность Фибоначчи из 10 элементов:
0 1 1 2 3 5 8 13 21 34
Объяснение
  • Мы инициализируем first и second как первые два элемента последовательности Фибоначчи.
  • Цикл for генерирует последующие элементы, складывая два предыдущих элемента.
  • next = first + second вычисляет следующий элемент.
  • Мы обновляем first и second в каждой итерации, чтобы поддерживать порядок последовательности.
  • Цикл продолжается до тех пор, пока не будет сгенерировано указанное количество элементов.

Вывод последовательности

На этом заключительном шаге мы улучшим нашу программу для последовательности Фибоначчи, добавив опции форматирования и улучшив представление вывода.

Обновим файл fibonacci.c, чтобы улучшить вывод последовательности:

cd ~/project
nano fibonacci.c

Измените код, чтобы добавить больше опций форматирования и вывода:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("Введите количество элементов в последовательности Фибоначчи: ");
    scanf("%d", &n);

    printf("Последовательность Фибоначчи из %d элементов:\n", n);

    printf("Индекс\tЗначение\n");
    printf("------\t------\n");

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d\t%d\n", i, next);
    }

    return 0;
}

Скомпилируйте и запустите программу:

gcc fibonacci.c -o fibonacci
./fibonacci

Пример вывода:

Введите количество элементов в последовательности Фибоначчи: 8
Последовательность Фибоначчи из 8 элементов:
Индекс	Значение
------	------
0	0
1	1
2	1
3	2
4	3
5	5
6	8
7	13
Объяснение
  • Мы добавили таблицу с отформатированными столбцами "Индекс" и "Значение".
  • \t используется для табуляции, чтобы создать аккуратную таблицу.
  • Теперь каждый элемент выводится со своим соответствующим индексом.
  • Вывод предоставляет ясное и структурированное представление последовательности Фибоначчи.

Резюме

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

Наконец, мы выводим полную последовательность Фибоначчи на основе ввода пользователя. Этот лабораторный практикум предоставляет практический пример использования циклов и переменных для генерации классической математической последовательности на языке программирования.