如何在Java中添加分数
我试图做一个简单的程序,添加两个分数如何在Java中添加分数,java,math,fractions,Java,Math,Fractions,我试图做一个简单的程序,添加两个分数 public static void add(int nom1, int denom1, int nom2, int denom2){ int comd = denom1*denom2; //creates common denominator by multiplying both denominators int answer = nom1*nom2+nom1*nom2; //attempting to get answer
public static void add(int nom1, int denom1, int nom2, int denom2){
int comd = denom1*denom2; //creates common denominator by multiplying both denominators
int answer = nom1*nom2+nom1*nom2; //attempting to get answer (not working very well)
System.out.println(nom1+"/"+denom1+" + "+nom2+"/"+denom2+" = "+answer+"/"+comd); // outputs test like 1/2 + 4/8 = 8/8
start(); // restarts the program
}
不幸的是,我的计算结果不起作用,我想不出另一种方法。提前感谢任何提供帮助的人。很抱歉,如果这看起来很无聊,但我在网上找不到任何我能理解的东西。我很确定它应该是:
int answer = nom1*denom2 + nom2*denom1;
而不是:
int answer = nom1*nom2+nom1*nom2;
试试这个
public static void add(int nom1, int denom1, int nom2, int denom2){
int comd = denom1*denom2; //creates common denominator by multiplying both denominators
int newNomAnswer = nom1*denom2 + nom2*denom1;
System.out.println(nom1 + "/" + denom1 + " + " + nom2 + "/" + denom2 + " = " + newNomAnswer + "/" + comd);
start();
}
尽管jrahhali的答案是正确的。如果您选择添加2个以上的分数,我的版本可以很好地扩展
int comd = denom1 * denom2;
int answer = (comd/denom1 * nom1) + (comd/denom2 * nom2);
System.out.println(nom1 + "/" + denom1 + " + " + nom2 + "/" + denom2
+ " = " + answer + "/" + comd);
这是因为我不像他那样跳过除法
我所做的不是每次都说nom和denom,而是说commDeno和totNum。代码:
Public void AddFraction(int nom, int denom, int nom2, int denom2){
Int comD, totNom;
Nom = nom*denom2;
Nom2 = nom2*denom;
totNom =num+num2;
comD = denom*denom2;
Sysout(totNum + "/" +comD);
}
在Java中添加两个分数的方法是首先找到两个分母中的一个:denom=lcm(denom1,denom2)。这是答案的分母 然后使用以下公式找到命名者:nom=denom/denom1*nom1+denom/denom2*nom2
最后,您可以通过将分子和分母除以它们的值来简化分数。试试看。我对数学有点生疏,但我很确定它应该是:int-answer=nom1*denom2+nom2*denom1.@jrahhali您应该补充这一点作为一个一般提示,您应该使用Eulers-GCD算法来获得最简单的输出形式。谢谢大家的建议