c++怎么求最大公約數(shù)

c++
小億
331
2023-09-28 11:38:51
欄目: 編程語言

C++中求最大公約數(shù)可以使用歐幾里得算法(輾轉(zhuǎn)相除法)。

以下是使用遞歸方式實(shí)現(xiàn)最大公約數(shù)的示例代碼:

#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 << "請(qǐng)輸入兩個(gè)數(shù)字:";
std::cin >> a >> b;
int result = gcd(a, b);
std::cout << "最大公約數(shù)為:" << result << std::endl;
return 0;
}

以上代碼中,gcd函數(shù)用于計(jì)算最大公約數(shù)。在每次遞歸調(diào)用中,如果b等于0,則a即為最大公約數(shù);否則,遞歸調(diào)用gcd(b, a % b),直到b等于0。

main函數(shù)中,用戶輸入兩個(gè)數(shù)字ab,然后調(diào)用gcd函數(shù)計(jì)算最大公約數(shù),并輸出結(jié)果。

你也可以使用循環(huán)方式來實(shí)現(xiàn)最大公約數(shù)的計(jì)算:

#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 << "請(qǐng)輸入兩個(gè)數(shù)字:";
std::cin >> a >> b;
int result = gcd(a, b);
std::cout << "最大公約數(shù)為:" << result << std::endl;
return 0;
}

以上代碼中,gcd函數(shù)使用循環(huán)方式實(shí)現(xiàn),每次循環(huán)中取b的值保存到temp變量中,然后將a賦值為b,b賦值為a除以b的余數(shù),直到b等于0。循環(huán)結(jié)束后,a即為最大公約數(shù)。

0