AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch [Java] Problem mit rekusiver Methode
Thema durchsuchen
Ansicht
Themen-Optionen

[Java] Problem mit rekusiver Methode

Ein Thema von Xzeer · begonnen am 25. Nov 2011 · letzter Beitrag vom 27. Nov 2011
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.021 Beiträge
 
Delphi 12 Athens
 
#1

AW: [Java] Problem mit rekusiver Methode

  Alt 25. Nov 2011, 18:34
Was möchtest du denn mit dieser Zeile erreichen? Überlege dir einmal genau was dort passiert...
Code:
return 1 + b(arr, i + 1);
Was du eigentlich willst ist doch an der Stelle 1 zurückzugeben, wenn auch die restlichen Elemente positiv sind. Das musst du dann aber auch prüfen und je nach Rückgabewert den passenden Wert zurückliefern.

Das einfache Addieren wird in der derzeitigen Form nicht funktionieren. Denn dann würdest du z.B. bei einem array mit drei positiven Zahlen 1 + 1 + 1 + (-1) zurückliefern, also nicht 1, obwohl alle drei Werte positiv sind.

Das solltest du am besten einmal im Debugger ausprobieren was passiert.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Xzeer
Xzeer

Registriert seit: 6. Jul 2007
106 Beiträge
 
#2

AW: [Java] Problem mit rekusiver Methode

  Alt 25. Nov 2011, 18:47
Das ist mir im Testat dann auch aufgefallen, deshalb ja auch die Ergbniskosmetig im äußersten else-Block.
Damit stimmt das Ergebnis dann für b({8}, 0) zum Beispiel wieder...

Ich habe zwar grundlegend einen Ansatz nur fehlt mir ein Teil davon:
Code:
public static int b(int[] arr, int i)
    {
        if ((i >= 0) && (i < arr.length))
        {
            if ((arr[i] > 0) && (na eben der Rest))
            {
                return 1;
            }
            else
            {
                return 0;
            }   
        }
        else
        {
            return -1;
        }
    }
So irgendwie muss das doch klappen, oder?
Nur ich komme nicht drauf, wie ich den Rest ausdrücke... doch nicht als b(arr, i + 1) > 0
Marvin
Xzeer

Geändert von Xzeer (25. Nov 2011 um 18:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.021 Beiträge
 
Delphi 12 Athens
 
#3

AW: [Java] Problem mit rekusiver Methode

  Alt 25. Nov 2011, 18:58
Größer als Null reicht ja nicht, nein. Denn wenn das Array zu Ende ist, kommt ja -1 zurück, auch das wäre ja ok. Wie wäre es also mit "ungleich Null"?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Xzeer
Xzeer

Registriert seit: 6. Jul 2007
106 Beiträge
 
#4

AW: [Java] Problem mit rekusiver Methode

  Alt 25. Nov 2011, 19:02
Nein!

Ich wusste dass ich nur ein kleines Stück daneben lag, nur wollte mir das einfach nicht einfallen.

Aber vielen Dank für deine Hilfe, jetzt leuchtet es mir ein...
Marvin
Xzeer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz