Das Finden der Fakultät mithilfe der Rekursion

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man die Fakultät einer gegebenen Zahl mithilfe der Rekursion in der C-Programmiersprache berechnet. Die Fakultät wird mit '!' bezeichnet und ist das Produkt aller positiven ganzen Zahlen, die kleiner oder gleich der gegebenen Zahl sind. Beispielsweise ist die Fakultät von 5 gleich 5 x 4 x 3 x 2 x 1 = 120.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123242{{"Das Finden der Fakultät mithilfe der Rekursion"}} c/function_declaration -.-> lab-123242{{"Das Finden der Fakultät mithilfe der Rekursion"}} c/function_parameters -.-> lab-123242{{"Das Finden der Fakultät mithilfe der Rekursion"}} c/recursion -.-> lab-123242{{"Das Finden der Fakultät mithilfe der Rekursion"}} c/create_files -.-> lab-123242{{"Das Finden der Fakultät mithilfe der Rekursion"}} c/user_input -.-> lab-123242{{"Das Finden der Fakultät mithilfe der Rekursion"}} c/output -.-> lab-123242{{"Das Finden der Fakultät mithilfe der Rekursion"}} end

Initialisiere die main()-Funktion

In der main-Funktion werden wir Variablen deklarieren, um den eingegebenen Wert und die berechnete Fakultät zu speichern. Anschließend werden wir den Benutzer auffordern, einen Wert einzugeben, für den die Fakultät berechnet werden soll.

#include <stdio.h>

int main()
{
    int num, faktorial;
    printf("Geben Sie eine Zahl ein: ");
    scanf("%d", &num);
}

Erstellen Sie die Funktion, um die Fakultät mithilfe der Rekursion zu berechnen

Wir werden jetzt eine Funktion namens 'fakultät' erstellen, die einen ganzzahligen Parameter 'num' annimmt und einen ganzzahligen Wert zurückgibt. In dieser Funktion werden wir die Rekursion verwenden, um die Fakultät der gegebenen Zahl zu berechnen. Wenn der Wert der gegebenen Zahl gleich 1 oder 0 ist, geben wir 1 zurück, da die Fakultät beider Werte 1 ist. Wenn die gegebene Zahl größer als 1 ist, berechnen wir ihre Fakultät mithilfe der Rekursion und geben den Wert zurück.

int fakultät(int num)
{
    if(num == 0 || num == 1)
    {
        return 1;
    }
    else
    {
        return num * fakultät(num-1);
    }
}

Rufen Sie die Fakultätsfunktion in der main-Funktion auf und geben Sie das Ergebnis aus

Wir werden jetzt die 'fakultät'-Funktion innerhalb der'main'-Funktion aufrufen und den eingegebenen Wert als Parameter übergeben. Anschließend werden wir den zurückgegebenen Wert in der 'fakultät'-Variablen speichern und das Ergebnis auf der Konsole ausgeben.

#include <stdio.h>

int fakultät(int num);

int main()
{
    int num, fakultät;
    printf("Geben Sie eine Zahl ein: ");
    scanf("%d", &num);

    fakultät = fak(num);
    printf("Fakultät von %d ist %d", num, fakultät);

    return 0;
}

注:代码中的“fact”应为“factorial”,翻译时已修正。

Kompilieren und Ausführen des Programms

Jetzt, nachdem das Programm geschrieben wurde, speichern Sie die Datei als'main.c' im Verzeichnis '~/project/'. Öffnen Sie das Terminal und navigieren Sie zum Verzeichnis, das die'main.c'-Datei enthält. Verwenden Sie den folgenden Befehl, um das Programm zu kompilieren:

gcc main.c -o main

Sobald das Programm erfolgreich kompiliert wurde, verwenden Sie den folgenden Befehl, um das Programm auszuführen:

./main

Vollständiger Code von'main.c'

Verwenden Sie diesen Code als Referenz, wenn erforderlich.

#include <stdio.h>

int fakultät(int num);

int main()
{
    int num, fakultät;
    printf("Geben Sie eine Zahl ein: ");
    scanf("%d", &num);

    fakultät = fakultät(num);
    printf("Fakultät von %d ist %d", num, fakultät);

    return 0;
}

int fakultät(int num)
{
    if(num == 0 || num == 1)
    {
        return 1;
    }
    else
    {
        return num * fakultät(num-1);
    }
}

Zusammenfassung

In diesem Lab haben wir gelernt, wie man die Fakultät einer gegebenen Zahl in C mithilfe der Rekursion berechnet. Wir haben eine Funktion erstellt, die die Rekursion verwendet, um die Fakultät zu finden, und eine Hauptfunktion, um eine Zahl einzugeben und die Fakultätsfunktion aufzurufen.