0Pricing
C Academy · Урок

Рекурсия в C

Изучите рекурсивные функции, их применение и различия между рекурсией и итерацией

«Рекурсия в C» — бесплатный урок C Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C Academy содержит 3 уроков всего.

Рекурсия в C

Рекурсия в C

Рекурсия — это метод, при котором функция вызывает саму себя для решения задачи.

В этом уроке Вы узнаете:

  • Что такое рекурсия и как она работает.
  • Как реализовывать рекурсивные функции.
  • Чем рекурсия отличается от итерации.
Рекурсия в C — иллюстрация 1

Что такое рекурсия

Что такое рекурсия

Рекурсия — это вызов функцией самой себя для решения части задачи меньшего размера.

Пример синтаксиса:

void function() { function(); // Recursive call }

У каждой рекурсивной функции должен быть базовый случай, предотвращающий бесконечную рекурсию.

Пример: рекурсия

Пример: рекурсия

Эта программа демонстрирует рекурсию, выводя числа от 5 до 1.

#include <stdio.h>

void countDown(int n) {
    if (n <= 0) return; // Base case
    printf("%d\n", n);
    countDown(n - 1); // Recursive call
}

int main() {
    countDown(5);
    return 0;
}

Базовый случай в рекурсии

Базовый случай в рекурсии

Рекурсивная функция должна содержать базовый случай, который останавливает рекурсию.

Пример:

if (n == 0) return;

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

Пример: вычисление факториала с помощью рекурсии

Пример: вычисление факториала с помощью рекурсии

Эта программа вычисляет факториал числа с помощью рекурсии.

#include <stdio.h>

int factorial(int n) {
    if (n == 0) return 1; // Base case
    return n * factorial(n - 1);
}

int main() {
    printf("Factorial of 5: %d\n", factorial(5));
    return 0;
}

Рекурсия и итерация

Рекурсия и итерация

Рекурсия и итерация (циклы) могут давать одинаковые результаты, но работают по-разному.

Различия:

  • Рекурсия использует вызовы функций и требует больше памяти.
  • Итерация использует циклы и обычно работает эффективнее.
  • Рекурсия упрощает код для таких задач, как обход дерева.

Пример: последовательность Фибоначчи (рекурсивная)

Пример: последовательность Фибоначчи (рекурсивная)

Эта программа вычисляет последовательность Фибоначчи с помощью рекурсии.

#include <stdio.h>

int fibonacci(int n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

int main() {
    printf("Fibonacci(5): %d\n", fibonacci(5));
    return 0;
}

Когда следует использовать рекурсию?

Когда следует использовать рекурсию?

Рекурсия полезна для задач, связанных с:

  • Обходом деревьев.
  • Поиском с возвратом (например, при решении лабиринтов).
  • Математическими задачами, такими как вычисление факториала и последовательности Фибоначчи.

Итоги

Итоги

В этом уроке Вы узнали:

  • Что такое рекурсия и как она работает.
  • О важности базового случая.
  • О различии между рекурсией и итерацией.

Далее мы рассмотрим массивы и строки в C!

Рекурсия в C — иллюстрация 9

Часто задаваемые вопросы

Урок «Рекурсия в C» бесплатный?

Да — полный текст урока «Рекурсия в C» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C Academy, подпишись на CoddyKit PRO. Курс C Academy содержит 3 уроков всего.

Чему я научусь в уроке «Рекурсия в C»?

Изучите рекурсивные функции, их применение и различия между рекурсией и итерацией Ты практикуешь C Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C Academy?

Предыдущий опыт не требуется. C Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Рекурсия в C»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C Academy?

Да. Каждый урок C Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Определение и вызов функций
  2. Прототипы функций и область видимости
  3. Рекурсия в C
← Назад к C Academy