Variabler Rekursionsaufruf, aber wie?

Arthas42

Mitglied
Hallo,

ich bin mit folgendem Problem konfrontiert.

Ich soll ein Programm erstellen, welches die Anzahl der Stufen einer Treppe einliest und die Anzahl der Möglichkeiten diese Treppe zu "überwinden" zurückgibt. Dabei darf der Typ, der die Treppe überwinden möchte entweder eine Stufe nehmen oder zwei Stufen.

Soweit so gut, also Rekursion (Fibonacci), kein Ding ...


Java:
import java.util.Scanner;

public class Treppen {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Geben Sie die Hoehe der Treppe ein");
        int height = inputHeight();
        boolean checker = checker(height);
       
        if (checker == true) {
           
            int possibilities = possibilities(height);
            System.out.println("Anzahl der Moeglichkeiten: " + possibilities);
           
        } else {
           
            System.err.println("Fehler, die Hoehe der Treppe muss eine natuerliche Zahl groesser 0 sein!");
           
        } // end of if command check if height is ok input

    } // end of method main

    /**
     * input an int (steps of a staircase), save it in int height
     *
     * @return int height, steps of a staircase
     */
    private static int inputHeight() {

        Scanner scanner = new Scanner(System.in);
        int height = scanner.nextInt();

        scanner.close();

        return height;

    } // end of method inputHeight

    /**
     * checks if int height is greater 0 or not
     *
     * @param int height, steps of a staircase
     * @return true, if int height > 0 | false, if int height is not > 0
     */
    private static boolean checker(int height) {

        if (height > 0) {

            return true;

        } else {

            return false;

        } // end of if command check if height is ok

    } // end of method checker

    /**
     * calculates the possibilities of completing the staircase
     *
     * recursive call of possibilities with (int height - 1) +
     * recursive call of possibilities with (int height - 2)
     * until height is 1 -> return 1
     * or height is 2 -> return 2
     *
     * @param int height, steps of a staircase (left)
     * @return int, possibilities of completing the staircase
     */
    private static int possibilities(int height) {
       
        if(height == 1) {
           
            return 1;
           
        }
       
        if(height == 2) {
           
            return 2;
           
        }
       
        return possibilities(height - 1) + possibilities(height - 2);       
       
    } // end of method possibilities

} // end of class treppen


Jetzt soll ich aber in Teilaufgabe 2 die Anzahl, wie viele Treppen überwunden werden sollen, einlesen und mit dieser das ganze berechnen.

Also für max. 3 Stufen pro Schritt soll da stehen:

return possibilities(height - 1) + possibilities(height - 2) + possibilities(height - 3);

und für max. 4 Stufen pro Schritt soll da stehen:

return possibilities(height - 1) + possibilities(height - 2) + possibilities(height - 3) + possibilities(height - 4);

....

Aber wie geht das? (mit nur 1 Methode)
Ich kann ja schlecht 30 Methoden schreiben um die Fälle bis 30 Stufen pro Schritt abzudecken :/
 

Arthas42

Mitglied
Aufgabe 3 Treppenproblem

1.

Eine Treppe kann man auf unterschiedliche Arten hinaufgehen. Gehen Sie davon aus, dass man immer die Möglichkeit hat eine Stufe oder aber zwei Stufen auf einmal zu nehmen. Entwickeln Sie ein Programm Treppen.java, das als Eingabe die Höhe einer Treppe, also die Anzahl ihrer Stufen erhält und ausgibt, wie viele verschiedene Möglichkeiten es gibt die Treppe hinauf zu gehen. (habe ich gelöst, ist der gezeigte Code)


2.

Schreiben Sie ein weiteres Programm Treppen2.java welches als Eingabe zusätzlich die maximale Schrittweite, also die Anzahl der Stufen die Maximal mit einmal überschritten werden können, einliest und die Anzahl der unterschiedlichen Möglichkeiten für das Besteigen der Treppe ausgibt. (da weiß ich wie es geht, aber nicht wie ich es hinschreiben soll, siehe oben)
 

Javinner

Top Contributor
@Arthas42
Modulo-Operator ist dein Freund ;)
Java:
package arthas42;
/**
*
* @author Javinner
*/
public class Arthas42
{

    public static void main(String[] args)
    {
        Treppe treppe = new Treppe(15);
        treppe.getMoeglicheSchritte();

        Treppe treppeLang = new Treppe(121);
        treppeLang.getMoeglicheSchritte();
    }

}
/** Konsolenausgabe */
A: 15 Einzelschritte
B: 7 Doppelschritte und 1 Einzelschritt
C: 5 Dreifachschritte
A: 121 Einzelschritte
B: 60 Doppelschritte und 1 Einzelschritt
C: 40 Dreifachschritte und 1 Einzelschritt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Iteratorform und Methode mit variabler Parameterzahl Java Basics - Anfänger-Themen 31
IMain23 2d Array variabler Spaltenwert, Spaltenwert immer um eins erhöhen Java Basics - Anfänger-Themen 3
T Methoden Auf Variabler aus anderer Methode zugreifen Java Basics - Anfänger-Themen 5
G Variabler String Java Basics - Anfänger-Themen 5
M Strings mit variabler Länge auffüllen Java Basics - Anfänger-Themen 6
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
F Variabler - Robot - Tastatureingaben Java Basics - Anfänger-Themen 5
U Variabler Rückgabetyp und Klasse an Methode übergeben? Java Basics - Anfänger-Themen 5
J Quadrat mit variabler Kantenlänge Java Basics - Anfänger-Themen 3
A Variabler Identifier Java Basics - Anfänger-Themen 6
R variabler cast Java Basics - Anfänger-Themen 5
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
G problem mit variabler Java Basics - Anfänger-Themen 5
J Char-Array mit variabler Länge zurückliefern. Java Basics - Anfänger-Themen 11
G variabler variablenname Java Basics - Anfänger-Themen 18
R String[][] mit variabler länge Java Basics - Anfänger-Themen 4
S Variabler Name für ein Objekt einer Klasse? Java Basics - Anfänger-Themen 10
M Variabler/dynamischer Objektname? Java Basics - Anfänger-Themen 12
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
H Kapselung protected aber in einer Kindklasse nicht zugänglich Java Basics - Anfänger-Themen 5
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
P Installation JRE 8u321 startet, geht aber nicht weiter Java Basics - Anfänger-Themen 1
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
L Mergesort (aber anders) Java Basics - Anfänger-Themen 2
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
U Den Kuchen aufteilen - aber wie? (Rebalancing-Algorithmus) Java Basics - Anfänger-Themen 14
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
AGW App programmiert lassen, aber Änderungen vornehmen Java Basics - Anfänger-Themen 13
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Fehler, aber ich weiß nicht warum Java Basics - Anfänger-Themen 3
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3
A Figur erkennen, aber Abweichung falsch Java Basics - Anfänger-Themen 2
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
S Interpreter-Fehler Endlosschleife zur Laufzeit aber warum? Java Basics - Anfänger-Themen 15
J Mit OpenJDK entwickeln aber Oracle SE Runtime installieren? Java Basics - Anfänger-Themen 6
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
C Statischer Typ aber Variable nicht statisch? Java Basics - Anfänger-Themen 5
J ShortCut erstellen aber wie die dll einbinden Java Basics - Anfänger-Themen 3
I "\n" aus ArrayList enfernen, aber wie?! Java Basics - Anfänger-Themen 4
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
J JavaEditor kompiliert aber startet nicht Java Basics - Anfänger-Themen 1
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
O Array benutzen aber WIE? Java Basics - Anfänger-Themen 18
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
K Armstrong Programm geht nur bis 1000, aber nicht weiter Java Basics - Anfänger-Themen 2
pkm Best Practice BufferedImage in JPane darstellen - aber wie? Java Basics - Anfänger-Themen 22
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
D int x in System.out.println(), aber wie? Java Basics - Anfänger-Themen 1
J Serialisieren, aber wie? Java Basics - Anfänger-Themen 3
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
snipesss Java-Code gedownloaded, funktioniert aber nicht? Java Basics - Anfänger-Themen 9
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
P Irgendein billiger Fehler aber ich find ihn nicht Java Basics - Anfänger-Themen 16
Thallius Date für DatePicker formatieren aber wie? Java Basics - Anfänger-Themen 9
J Nullpointer aber wo? Java Basics - Anfänger-Themen 12
E Dumme Frage, aber... Java Basics - Anfänger-Themen 15
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
Z Erste Schritte Versuche ein Labyrinth in einem Terminal zu erstellen, aber kann die properties Datei nicht einlesen Java Basics - Anfänger-Themen 3
Tacofan Schleife aber nur wie? Java Basics - Anfänger-Themen 10
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
J Eine Art verkettete Liste aber mit teils mehr als einem Nachfolger Java Basics - Anfänger-Themen 8
J Programm funktioniert aber unsafe operations? Java Basics - Anfänger-Themen 3
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
I erstelle Vorschaubild mit der lib PDF-Renderer und möchte danach Dateiname ändern -> geht aber nicht Java Basics - Anfänger-Themen 0
D 0 Point Exeption... aber warum? Java Basics - Anfänger-Themen 3
D Compiler-Fehler NullPointerExeption aber Ecplise zeigt keine Fehler an?! Java Basics - Anfänger-Themen 8
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
A Ping Pong Score Zähler,aber wie? Java Basics - Anfänger-Themen 3
Z Zwei Images auf einem JFrame - Aber nur eins wird angezeigt! Java Basics - Anfänger-Themen 5
S OOP Die Methode funktioniert, aber wieso? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben