[問題] 最大公因數

看板java作者 (︿╴︿")時間14年前 (2010/04/14 21:28), 編輯推噓2(206)
留言8則, 6人參與, 最新討論串1/2 (看更多)
小弟的原程式碼有點長 以下是部分節錄: (numerator>=denominator) --------------------------------------------- p = numerator; q = denominator; m = 1; for(i=1;m>0;i++) { r = p/q; m = p%q; if(m==0) HCF = q; else p = q; q = r; } numerator = numerator/HCF; denominator = denominator/HCF; String fraction = numerator+"/"+denominator; System.out.println(fraction); 小弟的作法是利用輾轉相除法 但是當我輸入 numerator = 14 , denominator = 5 時 答案卻出現 7/2 請問是甚麼原因呢? 有勞高手解答 -- ┌這篇文章讓覺得?─────────────────────────────┐ │ │ 一"一 \ / >\\\< ╯ ╰ ∩ ∩ ▁ ▁_< ㄧ ㄧ+ │ ε Δ ╰╯ 北七 亂喔 害羞 莎笅 爽啦 哭爸 XD 科科 └──────────────────────────────────────┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.7.59

04/14 22:05, , 1F
"/"
04/14 22:05, 1F

04/14 22:11, , 2F
在迴圈中把變數印出來,自己解決它,會讓你學到不少。
04/14 22:11, 2F

04/15 14:08, , 3F
題外話,印象中GCD大部份都是用while玩而不是for吧
04/15 14:08, 3F

04/15 17:42, , 4F
樓上講的我也有發現 XD 不過都一樣就是了
04/15 17:42, 4F

04/15 17:44, , 5F
更正= = 不一樣 多浪費了一個i的空間
04/15 17:44, 5F

04/15 23:24, , 6F
for不寫定義域跟遞增域沒差...
04/15 23:24, 6F

04/17 16:59, , 7F
是沒差阿 但這題有幹嘛裝沒看到...
04/17 16:59, 7F

04/18 01:02, , 8F
型別要轉換成一樣 ex: double
04/18 01:02, 8F
文章代碼(AID): #1BnSBvYF (java)
討論串 (同標題文章)
文章代碼(AID): #1BnSBvYF (java)