gpt4 book ai didi

Java分数加法公式问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:50 25 4
gpt4 key购买 nike

我有一个类(class)项目,在该项目中,您必须从具有不同分母的用户那里接收两个分数,将它们加在一起并以最小公分母输出它们。由于我们只能使用我们已经涵盖的章节中的原则,所以我不能制作分数类,所以请不要建议。基本上我需要制作一个方法来将分数加在一起。我只是想把这些方法的基本公式写下来,所以这里是我现在拥有的所有代码。非常感谢任何建议、提示或帮助。 :-)

//Joseph Biancardi
//IS1300 Spring 2015
public class FractionAddition{
public static void main(String[] args) {
final int n1 = 2;
final int n2 = 3;
final int d1 = 3;
final int d2 = 6;
int c = 0;
int e1 = 0;
int e2 = 0;
while(c == 0) {
if(e1 == e2) {
c = 2;
}
e1 =+ d1;
if(e1 == e2) {
c = 1;
}
e2 =+ d2;

}
System.out.println(e1 + " " + e2);
int f1 = e1 / d1;
int f2 = e2 / d2;
int g1 = n1 * f1;
int g2 = n2 * f2;
int final1 = g1 + g2;
System.out.println(n1 + " " + n2 + " equals" + " " + final1);
System.out.println(d1 + " " + d2 + " equals" + " " + e1);
}
}

最佳答案

您查找 LCM 的方法不正确。您应该像这样计算 e:

private static long gcd(long a, long b)
{
while (b > 0)
{
long temp = b;
b = a % b;
a = temp;
}
return a;
}


private static long lcm(long a, long b)
{
return a * (b / gcd(a, b));
}
...
e = lcm(d1, d2); //denominator
int f1 = e / d1;
int f2 = e / d2;
int g1 = n1 * f1;
int g2 = n2 * f2;
int final1 = g1 + g2;
int k = gcd(final1, e);
int final_nominator = final1 / k;
int final_denominator = e / k;

请注意,我的 gcd 算法不是最优算法,它的速度可以显着提高。

关于Java分数加法公式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30044700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com