使用函数计算最大公约数

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用 C++ 中的函数来找到两个数的最大公约数(GCD, Greatest Common Divisor)。GCD 是能够整除给定两个数的最大数。我们将使用递归方法来实现该函数。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) 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++ 文件

~/project 目录下创建一个名为 main.cpp 的 C++ 文件。

touch ~/project/main.cpp

引入库

在文件中引入必要的库。

#include<iostream>

定义计算 GCD 的函数

定义一个递归函数 gcd(),它接收两个整数作为输入参数,并返回一个整数作为输出,该整数将是两个输入数的 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 << "GCD of " << a << " and " << b << " is " << gcd(a,b) << std::endl;
    return 0;
}

编译并运行程序

保存对文件的更改并退出。使用以下终端命令编译程序:

g++ main.cpp -o main

要运行程序,请在终端中输入以下命令:

./main

输出

运行程序后,终端将显示以下输出:

GCD of 105 and 30 is 15

总结

在本实验中,你学习了如何使用 C++ 中的递归函数来找到两个数的最大公约数(GCD)。这是计算机科学和数学中的一个实用应用。