題組內容

四、下列問題,請用遞迴(Recursive)的方式來撰寫:(共2題,共15分)

(二)請用遞迴方式撰寫一函式GCD,輸入為2個正整數 ,其傳回 為此2個正整數之最大公 因數。(7分)

申論題作答 (共 7 筆)

依時間顯示最近 7 筆。
毛毛
毛毛
申論題作答 #108477
98 分
98 總分
題意符合度
100分
論證結構
95分
語言表達
100分
1分45秒 總時間 0 人解鎖 2026.10
int GCD(int a, int b){ if(a%b==0) return b; return GCD(b,a%b); }
解鎖 16 字
藍環章魚
藍環章魚
申論題作答 #106451
69 分
69 總分
題意符合度
70分
論證結構
65分
語言表達
75分
3分12秒 總時間 0 人解鎖 2026.09
前往查看作答內容
解鎖 9 字
Bo Jun
Bo Jun
申論題作答 #106151
90 分
90 總分
題意符合度
88分
論證結構
90分
語言表達
95分
21秒 總時間 1 人解鎖 2026.09
int GCD(int a,int b){ if (b==0) return a; else return GCD(b,b%a)}
解鎖 29 字 1 人已解鎖
哈哈
哈哈
申論題作答 #106144
90 分
90 總分
題意符合度
90分
論證結構
92分
語言表達
85分
11分40秒 總時間 2 人解鎖 2026.09
include<iostreamusing namespace std;int GCD(int a,int b){ if(a%b==0){ret...
解鎖 43 字 2 人已解鎖
哈哈
哈哈
申論題作答 #105517
97 分
97 總分
題意符合度
100分
論證結構
95分
語言表達
100分
18分38秒 總時間 1 人解鎖 2026.09
include<iostream using namespace std; int GCD(int a, int b){ if(a % b ==...
解鎖 44 字 1 人已解鎖
王彥樺
王彥樺
申論題作答 #103744
20 分
20 總分
題意符合度
20分
論證結構
15分
語言表達
30分
5分23秒 總時間 0 人解鎖 2026.08
include <iostreamusing namespace stdint gcb(int a,int b) { if (b==0); re...
解鎖 50 字
igngs
igngs
申論題作答 #102660
56 分
56 總分
題意符合度
55分
論證結構
50分
語言表達
70分
2分17秒 總時間 0 人解鎖 2026.08
int GCD(int A, int B){ if (A%B==0) return B; else return GCD(B,A%B); }
解鎖 21 字

詳解 (共 10 筆)

邊工作邊唸書
邊工作邊唸書
詳解 #5203301
2021/11/10
int GCD(int A, int B)
{
if( (A % B) == 0)
return B;
else
return GCD(B, A%B);
}
茶茶
茶茶
詳解 #5202489
2021/11/10
int gcd(int x,int y)...
(共 148 字,隱藏中)
前往觀看
bmpss92295
bmpss92295
詳解 #5603599
2022/09/02
使用PYTHON撰寫 提供input

(共 21 字,隱藏中)
前往觀看
ㄏㄏㄏ
ㄏㄏㄏ
詳解 #6374038
2025/04/15
用三元運算子 int gcd(int ...
(共 73 字,隱藏中)
前往觀看
我一定會上榜
我一定會上榜
詳解 #5435968
2022/04/28

int GCD(int a, int b){

    while(b != 0) { 

        int r = a % b; 

        a = b; 

        b = r; 

    }

    printf("%d",a);   

}

int main()

{

    int a,b;

    printf("請輸入2個整數");

    scanf("%d %d",&a,&b);

    GCD(a,b);

}


Grace
Grace
詳解 #5930600
2023/09/13

另一種解法用短除法。

int GCD(x, y){
    int i = 1;
    while(true){
        i++;
        if (x%i==0 and y%i == 0){
            return i * GCD(x/i, y/i);
            if [(i^2>=x) or (i^2>=y)
                black;
        }
    }
}

Lin Jin
Lin Jin
詳解 #6119807
2024/06/04
兩種寫法:會差一次呼叫。
665ebce934ca5.jpg665ebd35ef88b.jpg
hhh
hhh
詳解 #5583515
2022/08/08


(共 1 字,隱藏中)
前往觀看
蔡明勳
蔡明勳
詳解 #5637957
2022/10/17
polar33794
polar33794
詳解 #5977614
2023/12/02
  1. int GCD(int N1, int N2)
  2. {
  3. if(N1>0 && N2>0)
  4. {
  5. if(N1>=N2)
  6. N1=N1%N2;//如果N1大於N2,就使用輾轉相除法,N1除以N2後的餘數,需要保留(商數不需要當作下一次計算的數值),N1原本的數值也用不到了,可以把N1取代為相除後的餘數
  7. else
  8. N2=N2%N1;
  9. ㅤㅤ
  10. if(N1>0&&N2>0)
  11. return GCD(N1,N2);
  12. else if(N1==0)
  13. return N2;
  14. else if(N2==0)
  15. return N1;
  16. }
  17. ㅤㅤ
  18. }