如何用C++编写一个函数来计算两个整数的最大公约数(GCD)?
时间: 2024-12-11 21:40:58 浏览: 13
计算输入三个数的最大公约数-c++教程谭浩强
在C++中,可以使用欧几里得算法(Euclidean Algorithm)来编写一个递归函数来计算两个整数的最大公约数(GCD)。以下是实现的一个简单版本:
```cpp
#include <iostream>
// 辗转相除法计算最大公约数
int gcd(int a, int b) {
if (b == 0) // 如果b为零,则a就是最大公约数
return a;
else
return gcd(b, a % b); // 递归调用,直到b变为零
}
int main() {
int num1 = 48, num2 = 18; // 测试的两个整数
std::cout << "The GCD of " << num1 << " and " << num2 << " is: " << gcd(num1, num2) << std::endl;
return 0;
}
```
在这个例子中,`gcd()`函数接收两个整数作为参数,如果第二个数为零,那么第一个数就是它们的最大公约数;否则,它会调用自身,传入第二个数和第一个数除以第二个数的余数,这个过程会一直持续到余数为零。
阅读全文