我正在上课很快
Fraction.getGCF是一种使用分子和分母来获得GCF的工作方法Fraction.getLCD也是一种使用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我怎样才能解决分子问题,用此程序无法产生正确的结果
您正在组合两种不同的算法。一种是执行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)= 192/512 = 3/8
或者
(1/8)+(16/64)=(1 *(64/8)+ 16 *(64/64))/ 64 = 24/64 = 3/8
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句