Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Größte gemeinsame Teiler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.12.2009, 14:10 Uhr
sia



Hi, ich habe folgende Aufgabetellung:
ich muss eine Methode schreiben int ggt(a,b), die den größten gemeinsamen Teiler berechnet. Die soll rekursiv sein, d.h. kein Schleifen erlaubt.
dies ist mein Code:


C++:
public class Rekursion
{
    
    
    public int ggt(int a ,int b)
    {
        
        int ganzezahl = 0;
        int erg = 0;
        if (a==b)
        {
            return a ;
        }
        else;
        if (a < b)
        {
            if (b / a == ganzezahl )
            {
                return a;
            }
            else;
            
            
        }
        return b;
        
        
    }



ich weiss net wie es weiter geht falls b/a keine Ganzezahl ist.....
kann mir einer sagen wie die zweite els funktioniert.... oder ob ih überhaupt richtig liege mit dem was ich geschrieben habe....
THX

Dieser Post wurde am 11.12.2009 um 09:44 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.12.2009, 13:01 Uhr
ao

(Operator)


b/a ist eine ganze Zahl, wenn bei der Division kein Rest entsteht (Stichwort Modulo-Division).

Hilft das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.12.2009, 17:06 Uhr
sia



Ja also ich hab da mittlerweile schon mit modulo gemacht!!!!
aber ich krieg immer null raus ...
ich glaub bei den returns da irgendwo ist ein Fehler, weiss aer nt was und wo genau...
seht ihr vllt. da nen Fehler??


C++:
public class Rekursion
{
    public int ganzezahl;
    
    public static int ggt(int a ,int b)
    {
    
        int ganzezahl = 0  ;        
        //int erg ;
        if (a==b)
        {
            return 0 ;
        }
        else;
        if (a < b)
        {
            if (b / a == ganzezahl )
            {
                return a ;
            }
            else;
            
            {
                if(a%2==0 && b%2==0)
                {
                    
                }
            }

            
        }
        return b ;        
        
        
    }

    
    public static void main(String[] args)
    {
        
        System.out.println("bitte geben Sie die erste Zahl ein:");
        int a = IO.eingabe();
        System.out.println("bitte geben Sie die zweite Zahl ein:");
        int b = IO.eingabe();
        System.out.println("kkkk" + ggt(a,b));
        
        
        

    }
    
    }


Dieser Post wurde am 11.12.2009 um 09:44 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.12.2009, 18:09 Uhr
ao

(Operator)


Deine Funktion ist nicht rekursiv. Rekursiv heißt, dass ggT() an irgendeiner Stelle ggT() aufrufen muss.

Zur rekursiven Bestimmung des ggT: http://de.wikipedia.org/wiki/Euklidischer_Algorithmus - da steht eigentlich alles, was man wissen muss.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: