Сложение двух чисел с использованием рекурсии

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В программировании на C мы можем сложить два числа с использованием рекурсии. Рекурсия - это функция, которая вызывает сама себя многократно, пока не будет достигнуто условие завершения. В этом лабе мы создадим C-программу для сложения двух чисел с использованием рекурсии.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/operators("Operators") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/operators -.-> lab-123193{{"Сложение двух чисел с использованием рекурсии"}} c/function_declaration -.-> lab-123193{{"Сложение двух чисел с использованием рекурсии"}} c/function_parameters -.-> lab-123193{{"Сложение двух чисел с использованием рекурсии"}} c/recursion -.-> lab-123193{{"Сложение двух чисел с использованием рекурсии"}} c/create_files -.-> lab-123193{{"Сложение двух чисел с использованием рекурсии"}} c/user_input -.-> lab-123193{{"Сложение двух чисел с использованием рекурсии"}} c/output -.-> lab-123193{{"Сложение двух чисел с использованием рекурсии"}} end

Откройте файл main.c

Для начала откройте файл main.c в директории ~/project/. Именно здесь мы напишем нашу C-программу.

Напишите код

Напишите следующий код в файле main.c. Код складывает два числа с использованием рекурсии.

#include <stdio.h>

// Функция для сложения двух чисел с использованием рекурсии
int add(int m, int n)
{
    if(n == 0)
        return m;

    int y = add(m, n-1) + 1;
    return y;
}

int main()
{
    printf("Adding Two Numbers Using Recursion\n");

    int num1, num2, result;
    printf("Enter first number: ");
    scanf("%d", &num1);

    printf("Enter second number: ");
    scanf("%d", &num2);

    result = add(num1, num2);
    printf("Result is: %d", result);

    return 0;
}

Запустите код

Сохраните файл main.c и скомпилируйте и запустите код. Вам должно быть предложено ввести два числа. После ввода чисел программа выведет сумму этих двух чисел.

Разберитесь в коде

Функция add принимает два целых аргумента m и n. Если n равно 0, она возвращает m. Если n не равно 0, она добавляет 1 к результату вызова функции add с параметрами m и n-1.

Функция main запрашивает у пользователя два целых числа, вызывает функцию add для их сложения и выводит результат.

Измените код

Попробуйте изменить функцию add, изменив способ сложения чисел. Например, вместо повторного прибавления 1 вы можете прибавлять 2 или 3. Проверьте код и посмотрите, что произойдет.

Резюме

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