Hallo liebe Gemeinde, ich hoffe ihr könnt mir helfen.
Ich scheitere bei einer Hausübung für die Uni an einer eigentlich simplen Aufgabe, aber irgendwie stehe ich auf dem Schlauch. Wir sollen für eine Definition eine rekursive und eine iterative Lösung schreiben. Die rekursive ist denkbar einfach, diese habe ich auch ohne Probleme hinbekommen, und zwar diese hier:
So, nun bekomme ich aber die iterative Lösung irgendwie nicht hin weil die Zahl die ich möchte nicht rauskommt, wenn ich die Funktion nicht nochmal aufrufe, hier mein Lösungsansatz iterativ:
Also wenn ich n = 0 oder n = 1 setze dann kommt auch der richtige return-Wert, allerdings fehlt unten noch irgendwas, damit bei n=3 z.B. ebenfalls 7 rauskommt - aber ich komme irgendwie nicht drauf.
Vielleicht könnt ihr mir ja helfen.
Danke im Voraus
Gruß Max
Ich scheitere bei einer Hausübung für die Uni an einer eigentlich simplen Aufgabe, aber irgendwie stehe ich auf dem Schlauch. Wir sollen für eine Definition eine rekursive und eine iterative Lösung schreiben. Die rekursive ist denkbar einfach, diese habe ich auch ohne Probleme hinbekommen, und zwar diese hier:
Java:
public class Aufgabe6b {
public static void main(String[] args) {
int n = 3;
System.out.println("Ergebnis ist: "+fRek(n));
}
public static int fRek (int n){
if (n <= 0){
return 1;
}else if (n == 1){
return 2;
}else if (n > 1){
return 4*fRek(n-2)-1;
//4 * fRek(3-2)-1 4*fRek(1)-1;
// = 4 * 2 = 8 - 1 = 7
}
return n;
}
}
So, nun bekomme ich aber die iterative Lösung irgendwie nicht hin weil die Zahl die ich möchte nicht rauskommt, wenn ich die Funktion nicht nochmal aufrufe, hier mein Lösungsansatz iterativ:
Java:
public class Aufgabe6c {
public static void main(String[] args) {
int n = 1;
System.out.println("Ergebnis ist: "+fRek(n));
}
public static int fRek(int n){
for (int i=0; i<=n; i++){
if (n<=0){
return 1;
}
if (n == 1){
return 2;
}
if (n > 1){
return 4*(n-2)-1;
}
}
return n;
}
}
Also wenn ich n = 0 oder n = 1 setze dann kommt auch der richtige return-Wert, allerdings fehlt unten noch irgendwas, damit bei n=3 z.B. ebenfalls 7 rauskommt - aber ich komme irgendwie nicht drauf.
Vielleicht könnt ihr mir ja helfen.
Danke im Voraus
Gruß Max