Den ersten find ich aber besser.
Moderator: lauras
Sören hat geschrieben:Die andere Lösungsmöglichkeit nennt sich Rekursion.
Was auf Funktionen bezogen bedeutet, eine Funktion ruft sich immer wieder selber auf.
Deine Grafik gibt dir eigentlich auch schon ziemlich genau vor, wie du das umsetzen kannst.
Die fakul-Funktion ruft sich solange selber auf, bis n 1 ist.
Das bedeutet, der erste Aufruf (mit beispielsweise n = 3) gibt das Ergebnis von n * der Fakultät von n - 1 zurück, das ganze verschachtelt sich dann solange, bis schließlich der innerste Funktionsaufruf 1 zurückgibt.
Die Klammern stellen die Verschachtelung dar: 4 * (3 * (2 * (1)))
Typische Programmbeispiele für die Rekursion sind vor allem Fakultät und Fibonacci-Formel.
Hier mal der Link zum Wikipedia Artikel zur Rekursion:
http://de.wikipedia.org/wiki/Rekursion
package RekursiveFakultät;
import javax.swing.JOptionPane;
public class Test2 {
static int fakt = 1;
static int count = 0;
public static void main(String args[]){
String string = JOptionPane.showInputDialog(null, "Deine Zahl?");
int i = Integer.parseInt(string);
System.out.println(fac(i));
}
public static int fac(int i){
if(i == count)
{
return fakt;
}
else if(i == 1)
{
return fakt;
}
else
{
count ++;
fakt = i*(fac(i-1));
}
return fakt;
}
}
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast