diff --git a/src/Faktorial.c b/src/Faktorial.c index bee7c10..4461e57 100644 --- a/src/Faktorial.c +++ b/src/Faktorial.c @@ -1,11 +1,17 @@ #include -int factorial(int n) { - if (n == 0 || n == 1) { - return 1; - } else { - return n * factorial(n - 1); +unsigned long long factorial(int n) { + if (n < 0) { + return 0; // Fakultät für negative Zahlen ist nicht definiert + } + + unsigned long long result = 1; + + for (int i = 1; i <= n; ++i) { + result *= i; } + + return result; } int run_factorial() { @@ -13,6 +19,8 @@ int run_factorial() { printf("Gib eine Zahl ein, um die Fakultät zu berechnen: "); scanf("%d", &num); + unsigned long long result = factorial(num); + if (num < 0) { printf("Fakultät ist für negative Zahlen nicht definiert.\n"); } else {