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
函數中,用戶輸入兩個數字a
和b
,然后調用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
賦值為b
,b
賦值為a
除以b
的余數,直到b
等于0。循環結束后,a
即為最大公約數。