Здесь у меня есть довольно простой для понимания код для вас.Это очень коротко и эффективно.Конечно, я кодировал его с помощью рекурсии:
Единственный заголовок, который вам нужно включить, это stdio.h.
Main:
int main() {
unsigned long n;
scanf("%lu", &n);
printf("%lu\n", factorial(n));
}
Функция вычисления факториала:
unsigned long factorial(unsigned long n) {
if (n==1) {
return 1;
} else {
return n * factorial(n-1);
}
}
Как видите, это довольно короткая и эффективная программа.Я использовал unsigned long, чтобы программа могла выводить и вычислять с очень длинными числами, не получая переполнения и тому подобное.Вам не нужен какой-либо цикл, только рекурсивная функция.