今天,我嘗試自己設計最大公因數程式碼,打得落落長一大堆if, else,不亦樂乎,結果測試結果失敗,所幸對了50%的測試(這哪好?,我卡在若輸入二數值是質數與質數相乘的情況(7x13 VS 7x17),答案會是錯的gcd = 1,這是因為,我只有設定2, 3, 5數值,其他就沒有設定,且我不知道除了暴力解還能怎麼辦,所以我上網找答案,結果找到了一個令我為之震撼的超簡潔程式碼:
網址:https://takamai.pixnet.net/blog/post/34642223
#include<iostream>
using namespace std;
int gcd(int, int);
int main() {
int m = 0;
int n = 0;
cout << "輸入兩數:";
cin >> m >> n;
cout << "GCD: "
<< gcd(m, n) << endl;
return 0;
}
int gcd(int m, int n) {
int r = 0;
while(n != 0) {
r = m % n;
m = n;
n = r;
}
return m;
}