Вычисление факториала с использованием цикла C Do-While с декрементацией

Чтобы вычислить факториал числа с помощью уменьшающего цикла do- while в языке программирования C, вы можете использовать несколько подходов. Вот несколько способов:

Метод 1. Использование цикла do- while с уменьшающимся счетчиком:

#include <stdio.h>
int main() {
    int number, factorial = 1;

    printf("Enter a positive integer: ");
    scanf("%d", &number);

    if (number < 0) {
        printf("Error: Factorial is not defined for negative numbers.\n");
        return 0;
    }

    int i = number;
    do {
        factorial *= i;
        i--;
    } while (i > 0);

    printf("The factorial of %d is %d\n", number, factorial);

    return 0;
}

Метод 2. Использование отдельной функции для расчета факториала:

#include <stdio.h>
int calculateFactorial(int number) {
    if (number < 0) {
        printf("Error: Factorial is not defined for negative numbers.\n");
        return -1;
    }

    int factorial = 1;
    int i = number;
    do {
        factorial *= i;
        i--;
    } while (i > 0);

    return factorial;
}
int main() {
    int number;

    printf("Enter a positive integer: ");
    scanf("%d", &number);

    int factorial = calculateFactorial(number);
    printf("The factorial of %d is %d\n", number, factorial);

    return 0;
}

Метод 3. Использование рекурсии:

#include <stdio.h>
int calculateFactorial(int number) {
    if (number < 0) {
        printf("Error: Factorial is not defined for negative numbers.\n");
        return -1;
    }

    if (number == 0) {
        return 1;
    } else {
        return number * calculateFactorial(number - 1);
    }
}
int main() {
    int number;

    printf("Enter a positive integer: ");
    scanf("%d", &number);

    int factorial = calculateFactorial(number);
    printf("The factorial of %d is %d\n", number, factorial);

    return 0;
}