作者sie (︿╴︿")
看板java
標題[問題] 最大公因數
時間Wed Apr 14 21:28:21 2010
小弟的原程式碼有點長
以下是部分節錄:
(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
推 slalala:"/" 04/14 22:05
→ tkcn:在迴圈中把變數印出來,自己解決它,會讓你學到不少。 04/14 22:11
→ neverfly:題外話,印象中GCD大部份都是用while玩而不是for吧 04/15 14:08
推 elfswordsman:樓上講的我也有發現 XD 不過都一樣就是了 04/15 17:42
→ elfswordsman:更正= = 不一樣 多浪費了一個i的空間 04/15 17:44
→ TonyQ:for不寫定義域跟遞增域沒差... 04/15 23:24
→ elfswordsman:是沒差阿 但這題有幹嘛裝沒看到... 04/17 16:59
→ Knighter:型別要轉換成一樣 ex: double 04/18 01:02