[問題] 最大公因數

作者: WingedDragon (黃金會死鳥-死後無法復活)   2016-05-30 15:25:23
看到一種版本求最大公因數的寫法, 但是他的迴圈看不懂
int gcd(int a, int b)
{
while ((a %= b) && (b %= a))
/* empty */;
return a + b;
}
他的 while 裡面左右都是整數, 怎麼取 AND ?
而且 while 裡面也不動作
這個程式真的能動嗎 ?
作者: a27417332 (等號卡比)   2016-05-30 15:29:00
為何不用Debugger跑跑看呢?
作者: shadow0326 (非議)   2016-05-30 16:00:00
0代表false,非0代表true囉,當然可以AND迴圈裡面也有動作啊,%=不就是動作嗎
作者: flere (人間失格)   2016-05-30 16:03:00
建議你在while前加上一個判斷是,a,b不為0
作者: Leadgen (新竹~)   2016-05-30 16:03:00
展轉相除法
作者: flere (人間失格)   2016-05-30 16:04:00
然後你的while沒有加分號阿我眼殘..看到了XD
作者: ilms49898723 (LittleBird)   2016-05-30 18:05:00
輾轉相除法,這樣寫要記得b不能為0
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-05-31 14:32:00
你到底要不要自己跑跑看。
作者: me356500 (呵呵)   2016-06-01 21:19:00
輾轉?

Links booklink

Contact Us: admin [ a t ] ucptt.com