C++如何求最大公约数?
时间: 2024-06-13 15:07:33 浏览: 51
以下是C++中求最大公约数的四种方法:
1.穷举法之一
```c++
int gcd(int a, int b) {
int tem = a < b ? a : b;
for (int i = tem; i >= 1; i--) {
if (a % i == 0 && b % i == 0) {
return i;
}
}
return 1;
}
```
2.穷举法之二
```c++
int gcd(int a, int b) {
int tem = a < b ? a : b;
for (int i = tem; i >= 1; i--) {
if (a % i == 0 && b % i == 0) {
return i;
}
}
return 1;
}
```
3.辗转相除法
```c++
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
```
4.更相减损法
```c++
int gcd(int a, int b) {
if (a == b) {
return a;
}
if (a < b) {
return gcd(b - a, a);
}
else {
return gcd(a - b, b);
}
}
```
阅读全文