Comment ajouter des fractions en Java


J'essaie de faire un programme simple qui ajoute deux 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 (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
}

Malheureusement, mon calcul pour trouver la somme ne fonctionne pas, et je ne peux pas trouver une autre façon de le faire. Merci d'avance pour tous ceux qui aident. Désolé si cela semble noobish, mais je ne trouve rien en ligne qui fonctionne que je peux comprendre.

Author: Kick Buttowski, 2014-11-08

5 answers

Je suis presque sûr que c'est censé être:

int answer = nom1*denom2 + nom2*denom1;

Au Lieu de:

int answer = nom1*nom2+nom1*nom2;
 4
Author: jrahhali, 2014-11-08 00:12:27

Essayez ceci

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(); 
}
 1
Author: user8786264, 2014-11-08 00:19:24

Bien que la réponse de jrahhali soit correcte. Ma version évolue bien si vous avez choisi d'ajouter plus de 2 fractions.

 int comd = denom1 * denom2;
 int answer = (comd/denom1 * nom1) + (comd/denom2 * nom2);

 System.out.println(nom1 + "/" + denom1 + " + " + nom2 + "/" + denom2 
                    + " = " + answer + "/" + comd);

C'est parce que je ne saute pas la division comme lui.

 1
Author: apxcode, 2014-11-08 00:49:13

La façon d'ajouter deux fractions en Java consiste à trouver d'abord le Multiple le moins commun (LCM) des deux dénominateurs: denom = lcm(denom1, denom2). C'est le dénominateur de la réponse.

Ensuite, vous trouvez le nominateur en utilisant la formule suivante: nom = denom/denom1*nom1 + denom/denom2*nom2.

Enfin, vous pouvez simplifier la fraction en divisant à la fois le numérateur et le dénominateur par leur Plus grand Diviseur commun (GCD). Essayez-le avec ceci en ligne widget .

 0
Author: Martin Johansen, 2019-02-26 20:31:18

Ce que j'ai fait, c'est au lieu de dire nom et denom à chaque fois, je dis commDeno et totNum. Code:

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);

}
 -1
Author: Code giver, 2018-05-10 13:35:34