kgV berechnen

Status
Nicht offen für weitere Antworten.
B

Bernd82

Gast
Hallo

ich versuche mich gerade darin das kgV zu berechnen. Nach kurzem google Studium macht man das wohl am besten in dem man das ggT mit einbezieht. Ein programm für den ggT habe ich schon geschrieben (rekursiv).
Java:
static int kgV(int a, int b)
    { 
	return a * (b / ggT(a,b));

Nun frage ich mich wie man das kgV den nun am besten berechnet. wäre dieser ansatz denn korrekt? habs noch net versucht zu programmieren da ich erst wissen will ob ich auf dem richtigen Weg bin ;)



Java:
import java.util.Scanner;

public class ggTrek{
   public static void main(String[] args){
      Scanner scanner = new Scanner(System.in);
      System.out.print("Geben sie die erste Zahl ein: ");
      long a = scanner.nextInt();
      if (a==0){
          System.out.println("Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.print("Geben sie nun die zweite Zahl ein: ");
      long b = scanner.nextInt();
      if (b==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.println("Der ggT von den beiden Zahlen ist:" + ggT(a,b));
   }
   static long ggT(long a, long b){
     if(a==b|b==0) return a;
     else return ggT(b,a%b);
    }
}
 
B

Bernd82

Gast
Ich habs nun :D
Eine Frage habe ich da noch. Wie bekomme ich das hin das wenn ich zb nen Buchstaben eingebe das er das Programm dann auch beendet also so wie ich bei den if Abfragen gemacht habe sollte a oder b=0 sein. Auch über ein if?
Problem wie schreibe ich es dann kann ja nicht für jedes Zeichen ne if Abfrage machen


Java:
import java.util.Scanner;
 
public class ggTrek{
   public static void main(String[] args){
      Scanner scanner = new Scanner(System.in);
      System.out.print("Geben sie die erste Zahl ein: ");
      long a = scanner.nextInt();
      if (a==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.print("Geben sie nun die zweite Zahl ein: ");
      long b = scanner.nextInt();
      if (b==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.println("Der ggT von den beiden Zahlen ist:" + a * (b / ggT(a,b)));
   }
   static long ggT(long a, long b){
     if(a==b|b==0) return a;
     else return ggT(b,a%b);
    }
static long kgV(long a, long b)
    { 
    return a * (b / ggT(a,b));
}
}
 
B

Bernd82

Gast
* nochmal aktualisiert :D Frage steht aber noch :>

Java:
import java.util.Scanner;
 
public class kgV{
   public static void main(String[] args){
      Scanner scanner = new Scanner(System.in);
      System.out.print("Geben sie die erste Zahl ein: ");
      long a = scanner.nextInt();
      if (a==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.print("Geben sie nun die zweite Zahl ein: ");
      long b = scanner.nextInt();
      if (b==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.println("Das kgV von den beiden Zahlen ist:" + a * (b / ggT(a,b)));
   }
   static long ggT(long a, long b){
     if(a==b|b==0) return a;
     else return ggT(b,a%b);
    }
static long kgV(long a, long b)
    { 
    return a * (b / ggT(a,b));
}
}
 
S

SlaterB

Gast
> System.out.println("Das kgV von den beiden Zahlen ist:" + a * (b / ggT(a,b)));
ist in jedem Fall schlecht, wieso den Code doppelt schreiben?
besser:
System.out.println("Das kgV von den beiden Zahlen ist:" + kgV(a,b));

das Einlesen einer Zahl kannst du in eine Methode stecken:
readNextIntOrExit(Scanner),
darin dann die ganzen if-Abfragen, alle nur einmal programmieren, da du die Methode mehrfach aufrufst
 
S

SlaterB

Gast
falls dbohnen == angemeldeter Bernd82 sein soll, dann das bitte etwas deutlicher erwähnen,
ansonsten: ?
 
B

Bernd82

Gast
Nein das bin ich nicht, aber scheinbar kopiert er gern mal andere Lösungen....Sein anderer Thread zu den Fibonacci Zahlen sagt mir das wir wohl die gleiche Lehrveranstaltung besuchen....warum auch selber was machen wenn man es auch schnell kopieren kann
 
S

SlaterB

Gast
naja, wer sich im Forum helfen läßt, brauch nicht nach anderen zu rufen ;)
wobei so eine kleine Korrektur schon viel besser ist als andere Fragen a la 'ich versteh nix, wer kann helfen = komplett machen?'
 
B

Bernd82

Gast
Naja das Programm lief ja so schon, nur ne Kleinigkeit hat noch gefehlt ---> da brauchte ich dann schon Hilfe :D
 

dbohnen

Mitglied
Nein das bin ich nicht, aber scheinbar kopiert er gern mal andere Lösungen....Sein anderer Thread zu den Fibonacci Zahlen sagt mir das wir wohl die gleiche Lehrveranstaltung besuchen....warum auch selber was machen wenn man es auch schnell kopieren kann

@bernd82 ziemlich "harte" behauptung/unterstellung...
..wärst du in der lage, deine behauptung zu beweisen?...
...würde mich mal interessieren...

mfg dbohnen
 
B

Bernd82

Gast
man kann sich ja 1 und 1 zusammen zählen....

#5: Geändert von dbohnen (25.11.2009 um 23:26 Uhr)
erstellt: 25.11.2009, 23:23

wie gesagt ich behaupte das jetzt mal, aber dürfte auch mein Fehler sein, damit muss man dann rechnen wenn man ins Forum postet

wenn du das schon hart findest, dann können wir uns auch gerne persönlich mal treffen, mal sehen ob es noch was härters für dich gibt ;)

so HF
 
B

Bernd82

Gast
was heißt hier denn "nette klassen-kameradschaft" ? :D

da es mehrere Kurse dieser Lehrveranstaltung gibt, 10 um genau zu sein mit ca 15 Leuten pro Kurs, ist das mit klassen-kameradschaft leicht übertrieben ;)

wie gesagt ich unterstelle es ihm jetzt einfach mal und ja ich weiss einen wirklichen Beweis dafür kann ich nicht vorzeigen bzw muss ich damit rechnen wenn man was ins Netz stellt, aber es wird doch wohl gestattet sein sich mal kurz drüber aufregen zu dürfen :D

letztendlich ist ein weiterer Sinn solcher Foren, auch Leuten weiter zu helfen die ähnliche/gleiche Probleme in Zukunft auch haben zu helfen, in dem man google oder Forum Suche benutzt...

Nur der Stein meines Anstoßes war der das er in einem vorherigen Thread ( http://www.java-forum.org/hausaufgaben/92072-fibonacci-folge-rekursive-berechnung.html )
seinen Code nach dem ihm geholfen wurde wieder entfernt hat...
 
Status
Nicht offen für weitere Antworten.

Oben