#31932: C++的解法與思路


10730094@ms2.hssh.tp.edu.tw (給開司一份薯片)

學校 : 不指定學校
編號 : 172670
來源 : [180.177.114.33]
最後登入時間 :
2023-01-01 23:20:42
a024. 最大公因數(GCD) | From: [180.177.114.33] | 發表日期 : 2022-08-29 15:50

#include<iostream>
using namespace std;
int main() {
    int num1, num2, Max, Min;
    while (cin >> num1 >> num2) {
        Max = max(num1, num2); //用max函數比誰較大
        Min = min(num1, num2); //用max函數比誰較小
        while (Max > 0) { //當被除數大於0時(此時才能進行輾轉相除法)
            int temp = Max % Min; //temp決定有沒有辦法繼續進行輾轉相除法
            if (temp != 0) { //當有存在餘數時,將Max換Min,同時將餘數temp的值給Min
                Max = Min;
                Min = temp;
            }
            else { //如果Max% Min餘數為0,也就是彼此為因倍數關係,則可斷定此時的Min就是最大公因數(BY 輾轉相除法)
                int gcd = Min;
                cout << gcd;
                break;
            }
        }
    }
    return 0;
}

 
ZeroJudge Forum