[问题] 最大公因子

楼主: 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