Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
== Kästchen auf einem Gitter ==
== Kästchen auf einem Gitter ==


{{Aufgabe:Start}}
Bestimme die Anzahl der Kästchen in einem
# 2x2-Gitter.
# 3x3-Gitter.
# 4x4-Gitter.
Lösung für 2x2 und 3x3:
{{Collapse:Start}}
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen .
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen.
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.
{{Collapse:End}}
Lösung für 4x4:
{{Collapse:Start}}
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und.
{{Collapse:End}}
{{Aufgabe:End}}
{{Aufgabe:Start}}
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.
Rekursive Lösung
{{Collapse:Start}}
<syntaxhighlight lang="java">
public int k_rek(int n){
  if(n > 1){
    return n*n+k_rek(n-1);
  }else{
    return 1;
  }
}
</syntaxhighlight>
{{Collapse:End}}
Iterative Lösung
{{Collapse:Start}}
{{Collapse:Start}}
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
public int k(int n){
public int k_it(n){
  if(n > 1){
  int sum = 0;
      return 4*k(n-1)+1;
  for(int i = 1; i<n+1 ;i++){
  }else{
    sum = sum + i*i;  
      return 1;
  }
  }
  return sum;  
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Collapse:End}}
{{Collapse:End}}
== Suche in einem Array ==
== Suche in einem Array ==
130

Bearbeitungen