8. Rekursive Methoden

Submitted by javafrage on Tue, 08/26/2014 - 18:12

Welche zwei Kommandozeilenausgaben erzeugt das Programm?

Was berechnet das Programm in der Methode?

Das Programm Test nutzt die main() Methode zum Testen der Methode berechneRekursiv() mit den Werten 9 und 89.

public class Test {
    /**
     * Hauptprogramm: Nur zum Testen
     * @param args
     */
    public static void main(String[] args) {
        int eingabe;
        int erg;
        eingabe = 9;
        erg = berechneRekursiv(eingabe);
        System.out.println(eingabe + " : " + erg);
        eingabe = 89;
        erg = berechneRekursiv(eingabe);
        System.out.println(eingabe + " : " + erg);
    }
    /**
     * Diese Methode berechnet die/der/das ? der Eingabe
     *
     * @param eing : Eingabewert
     * @return a Ergebnis ist die ?
     */
    static private int berechneRekursiv(int eing) {
        int a;
        if (eing == 0) a = 0; //Beende Rekursion
        else { // a ist größer als Null. Fahre mit Rekursion fort
            a = eing%10;
            a= a + berechneRekursiv(eing/10);
        }
        return a;
    }
} 
Niveau 1
Schwierigkeitsgrad mittel
Zeit 4+2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 7: Implementieren und Dokumentieren einer Methode einsteigen()

public class Flugzeug {

   private int passagiere;
   // Ab hier Dokumentationskommentar und Methode implementieren
   /** 
   * diese Methode lässt Passagiere einsteigen. Die Anzahl der
   * Passagiere erhöht sich um den Wert p. Der Wert p muss positiv sein.
   * @param p Anzahl der Passagiere die zusteigen 
   * @return neue Anzahl der Passagiere
   */
    public int einsteigen(int p) {
       if (p>0)
          passagiere += p;
       return passagiere;    
   }
} // Ende der Klasse Flugzeug

 

Anonymous (not verified)

Sun, 11/06/2016 - 14:56

Beschreiben "2." und "4." nicht die gleichen Anforderungen?

Wenn ein Algorithmus terminiert hat er doch automatisch endlich viele Teilschritte, nicht?
Hätte er unendlich viele Teilschritte, dann würde er doch nicht terminieren.

Oder irre ich mich?