看板 PHP 關於我們 聯絡資訊
嗚..我不知求gcd的函數居然也可以寫得如此詭異..X( 這段程式 $i 的意思原是指從最小質數2開始一個個代 入檢查 $x2 跟 $y2 是否有公因數. 若有, 則將其乘 入gcd當中, 然後各自除以 $i 後繼續做運算求公因數. 直到測完所有可能是其公因數的數字. $i=1 的意思等於是要讓for迴圈能夠繼續從最小質數 2開始, 繼續抓出新的一組$x2, $y2的公因素, 抓到的 話就乘入gcd當中. 這段求gcd的碼老實說寫得很不友善, 不太容易懂, 而 且用來檢測公因數的方式也很沒效率. 還有這種在迴圈內擅改迴圈控制變數的寫法也可能讓程 式產生很難追蹤的bug. ※ 引述《mike7788 (mike)》之銘言: : <? : $x2 = rand(1,100); : $y2 = rand(1,100); : $gcd = 1; : for ($i=2;$i<=100/2;$i++) : {if ($x2%$i==0&&$y2%$i==0) : {$gcd*=$i; $x2/=$i; $y2/=$i; $i=1;}} : echo $gcd ; : ?> : 看不懂的地方是 $i=1代表什麼意思呢 : 如果不加那段 就沒辦法得到正確的gcd : 小弟我還是新手 : 希望各位高手幫忙解答 感激 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.253.114 ※ 編輯: bobju 來自: 211.74.253.114 (11/07 04:33)
mike7788 :感恩 11/09 09:01