Skip to Content

1.69 Rekursive Methoden

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 1.68: Anforderungen an einen Algorithmus

  1. Er funktioniert für gültige Eingaben
  2. Er besitzt endlich viele Einzelschritte
  3. Er ist in realistischer Zeit ausführbar
  4. Er terminiert

 

Comments

Anforderungen an einen Algorithmus

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?

Richtig

Terminieren bedeutet in endlich vielen Schritten abgerabeitet sein.



blog | by Dr. Radut