Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » Methoden und Schleife » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Methoden und Schleife
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
SarahK.
unregistriert
Methoden und Schleife Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hey Leute,

ich bin dringend auf Eure Hilfe angewiesen.

Die ganze Zeit versuche ich jetzt schon, das folgende Phänomen hinzubekommen.

Berechnen möchte ich die Fakultät einer Zahl (zum Beispiel 5).


Meine Ideen:
Ich dachte mir jetzt, dass könnte man bestimmt mit Funktionsaufruf und Funktionsdefinition schreiben. In den Funktionsaufruf die Zahl 5 und in die Definition eine Schleife welche jeweils um 1 verringert. Dann noch im Aufruf die Multiplikation beider Zahlen.

Allerdings ist das in der Umsetzung für mich dermaßen komplex; Gibt es vielleicht noch eine andere Möglichkeit?


Natürlich könnte ich eine Lösung aus Google nehmen, das hilft mir aber nichts, da ich dann zwar die Lösung habe, es aber immer noch nicht anwenden kann.


Vielen Dank für Eure Hilfe :-)
15.11.2014 14:33
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das Vorgehen das du beschreibst, ist schon richtig.
Es gibt da zwei verschiedene Ansätze:
1. iterativ:
eine Variable für das Ergebnis definieren (Anfangswert = 1)
und in einer Schleife von 2 bis n (z.B. 5) wird das Ergebnis mit dem Schleifenzähler multipliziert.

2. rekursiv:
n! = n * (n-1)!
die Funktion ruft sich so lange selbst auf, bis das Argument 0 ist und liefert dann eine 1 als Ergebnis zurück.

Wenn du mir sagst, ob die eine bestimmte Programmiersprache verwendest, kann ich dir vermutlich auch Code geben.

__________________
Syntax Highlighting fürs Board (Link)
15.11.2014 14:40 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
SarahK.
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich programmiere in Java. Ich kenne beide Varianten, wobei ich bei der iterativen sicherer bin :-)
15.11.2014 15:21
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo SahraK.,

hier zwei Möglichkeiten das Problem zu lösen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
public class Faculty {
    public static void main(String[] args)
    {
        int x = 5;
        int result1, result2;

        result1 = iterativ(x);

        System.out.println("iterativ: " + result1);

        result2 = rekursiv(x);

        System.out.println("rekursiv: " + result2);

    }

    private static int rekursiv(int x) {
        if (x==0)
        {
            return 1;
        }
        else
        {
            return x * rekursiv(x-1);
        }
    }

    private static int iterativ(int x) {
        int result = 1;
        for(int i = 1; i<=x;i++)
        {
            result = result * i;
        }
        return result;
    }
}


Gruß,

Karlito
16.11.2014 15:34 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
SarahK.
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank :-)
17.11.2014 19:28
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » Methoden und Schleife