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ù)字a
和b
,然后調(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ù)。