Чтобы вычислить факториал числа с помощью уменьшающего цикла 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;
}