簡體   English   中英

最大公約數給出 0 而不是 5

[英]Greatest Common Divisor Giving 0 instead of 5

計算 GCD 沒有給出適當的回報

//CALC GCD
if (a != 0)
{
    b = b % a;

    result = gcd(b, a);

}

您忽略了遞歸調用的結果。

GCD(rem, a);

應該

result = GCD(rem, a);

另請注意,您的方法假定第一個參數是較小的數字。 如果您調用GCD(15,10)而不是GCD(10,15) ,它將無法產生正確的輸出。 如果在a > b交換ab的方法的開頭添加一個條件,則可以輕松克服此限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM