刚了解到算法,理解不是很深 ,多多指教
作用:欧几里得算法(Euclidean Algorithm)是一种用于计算两个非负整数的最大公约数的算法。它基于以下原理:两个数的最大公约数等于其中较小的数和两数相除的余数的最大公约数。
具体步骤:
1.0 设两个非负整数为 a 和 b(假设 a >= b)。
2.0 如果 b 等于 0,则 a 就是最大公约数。
3.0 否则,用 a 除以 b,得到余数 r。
4.0 将 b 更新为 r,同时将 a 更新为原来的 b。
5.0 重复步骤 2 到 4,直到 b 等于 0。
#include <iostream>
using namespace std;
// 求最大公约数的函数
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main() {
int a, b;
cout << "Enter two non-negative integers: ";
cin >> a >> b;
cout << "GCD of " << a << " and " << b << " is " << gcd(a, b) << endl;
return 0;
}