Найти НОД с использованием функций

C++C++Beginner
Практиковаться сейчас

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

Введение

В этом практическом занятии вы научитесь находить наибольший общий делитель (НОД) двух чисел с использованием функций на C++. НОД - это наибольшее число, которое делит оба заданных числа. Мы будем использовать рекурсивный подход для реализации функции.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/BasicsGroup -.-> cpp/operators("Operators") cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/FunctionsGroup -.-> cpp/recursion("Recursion") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/operators -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/strings -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/conditions -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/function_parameters -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/recursion -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/output -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/files -.-> lab-96189{{"Найти НОД с использованием функций"}} cpp/code_formatting -.-> lab-96189{{"Найти НОД с использованием функций"}} end

Создайте новый файл на C++

Создайте новый файл на C++ с именем main.cpp в каталоге ~/project.

touch ~/project/main.cpp

Подключите библиотеки

В файле подключите необходимые библиотеки.

#include<iostream>

Определите функцию для вычисления НОД

Определите рекурсивную функцию gcd(), которая принимает два целых аргумента в качестве входных данных и возвращает целое число в качестве выходных данных, которое будет НОДом двух входных чисел.

int gcd(int a, int b) {
    if (a == 0 || b == 0)
        return 0;
    else if (a == b)
        return a;
    else if (a > b)
        return gcd(a - b, b);
    else
        return gcd(a, b - a);
}

Напишите главную функцию

В функции main() объявите две целочисленные переменные и присвойте им значения. Затем вызовите функцию gcd() с этими двумя переменными в качестве параметров и выведите результат.

int main() {
    int a = 105, b = 30;
    std::cout << "НОД от " << a << " и " << b << " равен " << gcd(a,b) << std::endl;
    return 0;
}

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

Сохраните внесенные изменения в файле и выйдите. Скомпилируйте программу с использованием следующей командной строки в терминале:

g++ main.cpp -o main

Для запуска программы введите в терминале следующую команду:

./main

Вывод

После запуска программы вывод будет отображаться в терминале следующим образом:

НОД от 105 и 30 равен 15

Резюме

В этом практическом занятии вы узнали, как найти Наибольший Общий Делитель (НОД) двух чисел с использованием рекурсивной функции на C++. Это полезное приложение в информатике и математике.