2014-09-26 90 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