Ergebnis 1 bis 11 von 11

Thema: Java Problem mit Rekursion lösen

  1. #1
    Gesperrt
    Registriert seit
    27.07.2006
    Beiträge
    476

    Frage Java Problem mit Rekursion lösen

    Hallo,
    ich habe da folgenden Code in Java vorliegen:

    int zahl = 1234567890;
    int speicher;

    while (zahl !=0){
    speicher = zahl %10;
    zahl = (zahl - speicher)/10;
    System.out.println(speicher);
    }

    Zur Erläuterung die while-Schleife gibt hintereinander die einzelnen Ziffern,
    der Zahl auf der Konsole aus. String-Operationen dürfen nicht verwendwentet werden.
    Meine Frage ist nun die, kann man diese while-Schleife bzw. diese Problem auch mit Hilfe einer Rekursion lösen???
    Wenn ja wie????
    Danke..........

  2. #2

    Registriert seit
    03.11.2007
    Ort
    Kornwestheim
    Beiträge
    282

    Standard

    Also Variablen instantiierst du ganz normal z.B. in der main-Methode und rufst dann damit die folgende Methode auf:

    public static void rekursiveFunktion(int zahl, int speicher) {
    if (zahl != 0) {
    speicher = zahl %10;
    zahl = (zahl - speicher)/10;
    System.out.println(speicher);
    rekursiveFunktion(zahl, speicher);
    }
    }

    Habs gerade getestet und das funktioniert.

  3. #3
    Gesperrt
    Themenstarter

    Registriert seit
    27.07.2006
    Beiträge
    476

    Standard

    Zitat Zitat von Phate Beitrag anzeigen
    Also Variablen instantiierst du ganz normal z.B. in der main-Methode und rufst dann damit die folgende Methode auf:

    public static void rekursiveFunktion(int zahl, int speicher) {
    if (zahl != 0) {
    speicher = zahl %10;
    zahl = (zahl - speicher)/10;
    System.out.println(speicher);
    rekursiveFunktion(zahl, speicher);
    }
    }

    Habs gerade getestet und das funktioniert.
    Danke dir..............

  4. #4

    Registriert seit
    03.11.2007
    Ort
    Kornwestheim
    Beiträge
    282

    Standard

    Kein Problem, war ja nicht wirklich schwer

  5. #5

    Standard

    Hmm, nur mal so als Frage:
    Wieso übergibst du Speicher immer in die Funktion?
    Das könnte man doch imo besser mit einer lokalen Variablen lösen.

  6. #6
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Stimmt eigentlich, denn der Übergabewert des Speichers wird gar nicht benötigt. Bei der ersten Gelegenheit wird dieser ungenutzt überschrieben.


  7. #7

    Registriert seit
    03.11.2007
    Ort
    Kornwestheim
    Beiträge
    282

    Standard

    Zitat Zitat von DonKnilch Beitrag anzeigen
    Stimmt eigentlich, denn der Übergabewert des Speichers wird gar nicht benötigt. Bei der ersten Gelegenheit wird dieser ungenutzt überschrieben.
    Jo stimmt, hab mir da gar keine Gedanken gemacht, wollte das nur schnell in eine Methode packen. Aber schaden tuts ja nicht.

  8. #8
    Gesperrt
    Themenstarter

    Registriert seit
    27.07.2006
    Beiträge
    476

    Standard

    Zitat Zitat von DiNaN Beitrag anzeigen
    Hmm, nur mal so als Frage:
    Wieso übergibst du Speicher immer in die Funktion?
    Das könnte man doch imo besser mit einer lokalen Variablen lösen.
    Frage mich das bitte nicht.
    So war es in der Aufgabenstellung von unseren "Möchtegern Prof."

  9. #9
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Zitat Zitat von Phate Beitrag anzeigen
    Jo stimmt, hab mir da gar keine Gedanken gemacht, wollte das nur schnell in eine Methode packen. Aber schaden tuts ja nicht.
    Nein, es schadet natürlich nicht, aber man versucht ja i.d.R., die Variablen so lokal wie möglich zu halten und wenn man Parameter nicht benötigt, dann baut man sie auch nicht ein. Also nicht falsch verstehen, soll kein Vorwurf sein.


  10. #10

    Standard

    Hmm noch ne generelle Frage zu der Berechnung:

    speicher = zahl %10;
    zahl = (zahl - speicher)/10;


    ist das zahl-speicher bei int's denn überhaupt nötig?
    Ich kanns grad ned ausprobieren, aber afaik wird bei /10 dann doch sowieso die letzte Stelle weggerundet, oder?

  11. #11
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Ja, so ist es. Es würde also reichen, wenn man einfach zahl / 10 rechnen würde. Der Rest würde bei einer Int-Variablen dann weggeschnitten.


Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Problem mit Mikrofon und Onboard Sound
    Von fischauge im Forum Webcams, Sound & Multimedia
    Antworten: 7
    Letzter Beitrag: 30.08.2007, 01:29
  2. Lineares Gleichungssystem mit Java lösen
    Von kurgan im Forum Programmieren
    Antworten: 5
    Letzter Beitrag: 28.07.2007, 19:47
  3. Laptop WLAN findet Access point nicht
    Von Reiwill im Forum WLAN
    Antworten: 3
    Letzter Beitrag: 05.04.2007, 11:05
  4. Problem mit ATI Radeon Sapphire 9800XT
    Von Karl im Forum TV-Karten
    Antworten: 7
    Letzter Beitrag: 30.09.2005, 18:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •