多个数的最大公约数c++
时间: 2024-09-29 07:08:52 浏览: 33
在C++中,计算两个或多个数的最大公约数(Greatest Common Divisor,GCD)可以使用欧几里得算法(Euclidean Algorithm),它是一种递归算法,也可以使用循环迭代的方式来实现。以下是使用循环迭代找到两个数最大公约数的一个简单示例:
```cpp
#include <iostream>
// 使用欧几里得算法找最大公约数
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 计算三个及以上数的最大公约数,这里采用辗转相除法
int gcd_multiple(int arr[], int n) {
int result = arr[0];
for (int i = 1; i < n; ++i) {
result = gcd(result, arr[i]);
}
return result;
}
int main() {
int numbers[] = {48, 18, 72};
int num_elements = sizeof(numbers) / sizeof(numbers[0]);
std::cout << "The GCD of the given numbers is: " << gcd_multiple(numbers, num_elements) << std::endl;
return 0;
}
```
在这个例子中,`gcd()`函数负责求出两个数的最大公约数,而`gcd_multiple()`函数则通过迭代应用`gcd()`到数组的所有元素上,最终得到所有数的最大公约数。
阅读全文