2014-09-26 48 views
-1

我做一些快速的教訓將分數添加到當前分數?

Fraction.getGCF是一種工作方法與分子和分母 Fraction.getLCD獲得GCF也是得到的2個分母

的LCD工作方法我試圖給現有的分子和分母添加一個分子(n2)和分母(d2)。

首先我降低了進入的分數簡單地說,然後嘗試將它們加在一起

public void addFraction(int n2, int d2) 
{ 
    int gcf = Fraction.getGCF(n2, d2); 
    n2 = n2/gcf; 
    d2 = d2/gcf; 
    numerator = (numerator*d2)+(denominator*n2); 
    denominator = Fraction.getLCD(denominator, d2); 
    this.reduce(); 
} 

是我的數學錯了或什麼?分子= 1分母= 8(1/8)和n2 = 16,d2 = 64(16/64)所以我試圖增加1/8到16/64,並在最終減少後得到3/2。在決賽前減少是導致12/8

TL; DR如何解決我的分子,它不是用此程序

+0

分母線的工作,分子線是什麼導致問題 – Tolkingdom 2014-09-26 22:09:34

回答

1

要結合使用兩種不同的算法產生正確的結果。一種是執行a/b + c/d =(a * d + b * c)/(bd)。另一種是執行a/b + c/d =(a *(lcd(b,d)/ b)+ c *(lcd(b,d)/ d))/ lcd(b,d)

numerator = numerator*d2+n2*denominator; 
denominator = denominator*d2; 

int lcd = Fraction.getLCD(denominator, d2); 
numerator = numerator*(lcd/denominator)+n2*(lcd/d2); 
denominator = lcd; 

所以在你的例子將是:

(1/8)+(16/64)=(1 * 64 + 16 * 8)/(8 * 64 )=五百一十二分之一百九十二= 3/8

(1/8)+(16/64)=(1 *(64/8)+ 16 *(64/64))/ 6 4 = 24/64 = 3/8

+0

謝謝,我現在認識到我的方式分子和分母現在在同一頁上的結尾。分子被GCF 1步驟快速分割。謝謝 – Tolkingdom 2014-09-26 23:37:55

1

最簡單的解決方法是改變

denominator = Fraction.getLCD(denominator, d2); 

denominator = denominator * d2; 

這工作,因爲你計算分子在不使用LCD。

+0

謝謝你現在我看到了什麼是錯的,謝謝你的幫助 – Tolkingdom 2014-09-26 23:38:25