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

  1. #include <stdio.h>
  2. unsigned long long factorial(int n) {
  3. if (n < 0) {
  4. return 0; // Fakultät für negative Zahlen ist nicht definiert
  5. }
  6. unsigned long long result = 1;
  7. for (int i = 1; i <= n; ++i) {
  8. result *= i;
  9. }
  10. return result;
  11. }
  12. int getPositiveInteger() {
  13. int num;
  14. while (1) {
  15. printf("Gib eine positive ganze Zahl ein: ");
  16. if (scanf("%d", &num) == 1 && num >= 0) {
  17. break;
  18. } else {
  19. printf("Ungültige Eingabe. Bitte gib eine positive ganze Zahl ein.\n");
  20. while (getchar() != '\n'); // Leere den Eingabepuffer
  21. }
  22. }
  23. return num;
  24. }
  25. int run_factorial() {
  26. int num = getPositiveInteger();
  27. if (num < 0) {
  28. printf("Fakultät ist für negative Zahlen nicht definiert.\n");
  29. } else {
  30. unsigned long long result = factorial(num);
  31. printf("Die Fakultät von %d ist %llu\n", num, result);
  32. }
  33. return 0;
  34. }