Последовательность Фибоначчи на C и C++
В этом уроке вы выведете первые 10 чисел последовательности Фибоначчи, используя всего две переменные и один цикл.
Введение
Последовательность Фибоначчи начинается с 0 и 1, а каждое следующее число равно сумме двух предыдущих: 0, 1, 1, 2, 3, 5, 8... Это классическое упражнение на циклы и одновременное обновление нескольких переменных.
Главное
- Включите предупреждения компилятора (compiler warnings) и исправьте их все.
- Хорошо понимайте тип и время жизни (lifetime) каждого значения.
- Всегда проверяйте входные данные и границы индексов массивов.
Примеры кода на C и C++
#include <stdio.h>
int main(void) {
int first = 0, second = 1;
for (int i = 0; i < 10; ++i) {
printf("%s%d", i ? " " : "", first);
// Advance the pair without storing the whole sequence.
int next = first + second; first = second; second = next;
}
puts("");
}
0 1 1 2 3 5 8 13 21 34
#include <iostream>
int main() {
int first = 0, second = 1;
for (int i = 0; i < 10; ++i) {
if (i) std::cout << ' ';
std::cout << first;
// Advance the pair without storing the whole sequence.
int next = first + second; first = second; second = next;
}
std::cout << '\n';
}
0 1 1 2 3 5 8 13 21 34
Сравнение C и C++
Программе нужны только две переменные first и second, чтобы хранить последнюю пару чисел, без хранения всей последовательности. На каждом шаге она выводит first, вычисляет next = first + second и сдвигает пару на одну позицию. Выражение i ? " " : "" выводит пробел только перед числами, начиная со второго.
C использует небольшие процедурные функции и открыто показывает, как данные представлены в памяти.
C++ по-прежнему позволяет работать на низком уровне, но добавляет библиотечные типы и более безопасные абстракции.
Упражнения для практики
Запустите обе версии, а затем измените код, чтобы увидеть разницу в безопасности, которую даёт каждый язык.
- Проверьте неверный ввод и граничные значения.
- Скомпилируйте с флагами -Wall -Wextra -Wpedantic, чтобы включить больше предупреждений.
- Вынесите общие объявления в заголовочный файл, а реализацию в отдельный файл.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи