c++

c++怎么求最大公约数

小亿
342
2023-09-28 11:38:51
栏目: 编程语言

C++中求最大公约数可以使用欧几里得算法(辗转相除法)。

以下是使用递归方式实现最大公约数的示例代码:

#include <iostream>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b;
std::cout << "请输入两个数字:";
std::cin >> a >> b;
int result = gcd(a, b);
std::cout << "最大公约数为:" << result << std::endl;
return 0;
}

以上代码中,gcd函数用于计算最大公约数。在每次递归调用中,如果b等于0,则a即为最大公约数;否则,递归调用gcd(b, a % b),直到b等于0。

main函数中,用户输入两个数字ab,然后调用gcd函数计算最大公约数,并输出结果。

你也可以使用循环方式来实现最大公约数的计算:

#include <iostream>
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main() {
int a, b;
std::cout << "请输入两个数字:";
std::cin >> a >> b;
int result = gcd(a, b);
std::cout << "最大公约数为:" << result << std::endl;
return 0;
}

以上代码中,gcd函数使用循环方式实现,每次循环中取b的值保存到temp变量中,然后将a赋值为bb赋值为a除以b的余数,直到b等于0。循环结束后,a即为最大公约数。

0
看了该问题的人还看了