größten gemeins. Teiler m. Euklidischen Algorith. nachbilden

Status
Nicht offen für weitere Antworten.

baubobo

Mitglied
Ich habe folgende Aufgaben bekommen und bin jetzt an einer Stelle stehen geblieben wo es einfach nicht weiter gehen will.

... welches den größten gemeinsamen Teiler (ggT) zweier Zahlen mit Hilfe des Euklidischen Algorithmus berechnet. Die Zahlen sollen dazu von der Tastatur eingelesen werden, wobei nach Eingabe von zwei Zahlen der ggT berechnet/ausgegeben wird und anschließend die nächsten Zahlen eingelesen werden. Die Eingaben soll in einer Schleife so lange erfolgen, bis eine leere Zeichenkette eingegeben wird...


Code:
import java.io.*;
public class GGT{
    public static void main(String args[]) throws IOException{
        int Zahl1, Zahl2, high, low, rest, rest1;

        BufferedReader din = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Bitte Zahl 1 eingeben: ");
        Zahl1 = Integer.parseInt(din.readLine());

        System.out.println("Bitte Zahl 2 eingeben: ");
        Zahl2 = Integer.parseInt(din.readLine());

        if (Zahl1>Zahl2){
            high = Zahl1;
            low =Zahl2;
        }
        else{
            high = Zahl2;
            low =Zahl1;
        }

        rest = high%low;

        if (rest>0){
            rest1 = low%rest;
        }
        else{
            System.out.println("Die Zahlen haben keinen GGT!");
        }

        System.out.println("Rest="+rest1);
    }
}

Beni: Bitte code-Tags verwenden
 
hi, vielleicht so:

Code:
import java.io.*; 
public class GGT{ 
    public static void main(String args[]) throws IOException{ 
        int Zahl1, Zahl2, high, low, rest, rest1; 

        BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); 
        while(!din.readLine().equals("")){
            System.out.println("Bitte Zahl 1 eingeben: "); 
            Zahl1 = Integer.parseInt(din.readLine()); 

            System.out.println("Bitte Zahl 2 eingeben: "); 
            Zahl2 = Integer.parseInt(din.readLine()); 
        
            if (Zahl1>Zahl2){ 
                high = Zahl1; 
                low =Zahl2; 
            } 
            else{ 
                high = Zahl2; 
                low =Zahl1; 
            } 

            rest = high%low; 

            if (rest>0){ 
                rest1 = low%rest; 
            } 
            else{ 
                System.out.println("Die Zahlen haben keinen GGT!"); 
            } 

            System.out.println("Rest="+rest1); 
        }    
    } 
}

Beni: auch bei 100 Posts: bitte Code leserlich einrücken...

oder hab ich dich falsch verstanden?

gruß
 
Vielleicht hilft das Bildchen ein bisschen:
http://www.cs.fhm.edu/~schieder/programmieren/slide0173.html

Das ergibt dann etwa sowas:
Code:
int zahl1 = 24;
int zahl2 = 16;
      
int high, low, rest, rest1 = 0;
      
if (zahl1 > zahl2){
   high = zahl1;
   low = zahl2;
}
else{
   high = zahl2;
   low = zahl1;
}
      
rest = high % low;
      
while( rest != 0 ){
   high = low;
   low = rest;
          
   rest = high % low;
}
      
System.out.println("GGT=" + low );

mfg Beni
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben