You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
964 B
42 lines
964 B
#include <stdio.h>
|
|
|
|
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 getPositiveInteger() {
|
|
int num;
|
|
while (1) {
|
|
printf("Gib eine positive ganze Zahl ein: ");
|
|
if (scanf("%d", &num) == 1 && num >= 0) {
|
|
break;
|
|
} else {
|
|
printf("Ungültige Eingabe. Bitte gib eine positive ganze Zahl ein.\n");
|
|
while (getchar() != '\n'); // Leere den Eingabepuffer
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
|
|
int run_factorial() {
|
|
int num = getPositiveInteger();
|
|
|
|
if (num < 0) {
|
|
printf("Fakultät ist für negative Zahlen nicht definiert.\n");
|
|
} else {
|
|
unsigned long long result = factorial(num);
|
|
printf("Die Fakultät von %d ist %llu\n", num, result);
|
|
}
|
|
|
|
return 0;
|
|
}
|