Java :: Aufgabe #129 :: Lösung #4
4 Lösungen

#129
Bestimmung des kleinsten gemeinsamen Vielfachen (kgV)
Anfänger - Java
von Nachbar
- 09.07.2016 um 10:08 Uhr
Schreibe ein Programm zur Bestimmung des kgV zweier natürlicher Zahlen (siehe Beispiel zur kgV-Berechnung). Die Berechnung soll ohne Beteiligung des größten gemeinsamen Teilers erfolgen.
Beispielausgabe:
Zahl 1: 5
Zahl 2: 7
kgV: 35
Beispielausgabe:
Zahl 1: 5
Zahl 2: 7
kgV: 35
#4

von nOrdan (1160 Punkte)
- 23.07.2019 um 18:07 Uhr
Es ist etwas komplizierter geworden, aber es funktioniert und das auch mit sehr großen Zahlen
Main-Klasse:
Java-Code
Methoden aus meiner Methodensammlung:
Java-Code
Main-Klasse:

import java.math.BigInteger; import Methodensammlung.Methoden; /** * Schreibe ein Programm zur Bestimmung des kgV zweier natürlicher Zahlen (siehe Beispiel zur kgV-Berechnung). Die Berechnung soll ohne Beteiligung des größten gemeinsamen Teilers erfolgen. * * Beispielausgabe: * * Zahl 1: 5 * Zahl 2: 7 * * kgV: 35 * * @author (nOrdan) * @version (23.07.2019) */ public class KGV { Methoden m = new Methoden(); public static void main(String [] args) { KGV kgv = new KGV(); kgv.inputs(); } private void inputs() { boolean valid1 = false; BigInteger zahl1 = new BigInteger("0"); BigInteger zahl2 = new BigInteger("0"); while (valid1 == false) { String input1 = m.userInput("Geben sie die erste Zahl ein"); m.errorStringInput(input1); if (input1.matches("[0-9]+")) { zahl1 = zahl1.add(new BigInteger(input1)); break; } else { m.errorMessage("Ihre Eingabe enthält ungültige Zeichen","Ungültiges Zeichen"); continue; } } while (valid1 == false) { String input2 = m.userInput("Geben sie die zweite Zahl ein"); m.errorStringInput(input2); if (input2.matches("[0-9]+")) { zahl2 = zahl2.add(new BigInteger(input2)); break; } else { m.errorMessage("Ihre Eingabe enthält ungültige Zeichen","Ungültiges Zeichen"); continue; } } berechnen(zahl1,zahl2); } public void berechnen(BigInteger zahl1, BigInteger zahl2) { boolean valid1 = false; BigInteger kleineAddition = new BigInteger("0"); BigInteger großeAddition = new BigInteger("0"); if (zahl1.compareTo(zahl2) == 1) { großeAddition = new BigInteger(zahl1.toString()); kleineAddition = new BigInteger(zahl2.toString()); zahl2 = großeAddition; zahl1 = kleineAddition; } else if (zahl1.compareTo(zahl2) == -1) { großeAddition = new BigInteger(zahl2.toString()); kleineAddition = new BigInteger(zahl1.toString()); } else { großeAddition = new BigInteger(zahl1.toString()); kleineAddition = new BigInteger(zahl2.toString()); m.informationMessage("Das kleinste gemeinsame Vielfache von " + kleineAddition + " und " + großeAddition + " beträgt: " + zahl1,"kgV gefunden"); System.exit(0); } while (valid1 == false) { if (zahl1.compareTo(zahl2) == 0) { break; } else { zahl2 = zahl2.add(großeAddition); } while(zahl1.compareTo(zahl2) == -1) { zahl1 = zahl1.add(kleineAddition); } } m.informationMessage("Das kleinste gemeinsame Vielfache von " + kleineAddition + " und " + großeAddition + " beträgt: " + zahl1,"kgV gefunden"); } }
Methoden aus meiner Methodensammlung:

public String userInput(String message) { return JOptionPane.showInputDialog(message); } public void errorStringInput(String input) { if (input == null) { System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet } else if (input.isEmpty() == true) { informationMessage("Da sie nichts eingegeben haben wird auch nichts ausgegeben","No input"); System.exit(0); } } public void errorMessage(String message,String errorName) { JOptionPane.showMessageDialog(null,message,errorName,JOptionPane.ERROR_MESSAGE); } public void informationMessage(String message,String informationName) { JOptionPane.showMessageDialog(null,message,informationName,JOptionPane.INFORMATION_MESSAGE); }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1