Вычислить факториал введённого числа - C (СИ)
Формулировка задачи:
Подскажите пожалуйста как написать программу, которая вычислила бы факториал введённого числа)
Решение задачи: «Вычислить факториал введённого числа»
textual
Листинг программы
#include <stdio.h>
unsigned long long f(unsigned n) {
return ( n > 1 ) ? n * f(n - 1) : 1;
}
int main(void) {
unsigned n;
while ( printf("N = ") && scanf("%u", &n) == 1 )
printf("N! = %llu\n", f(n));
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Сначала подключается стандартная библиотека C, которая содержит функции для ввода и вывода данных.
- Затем определена функция с именем
f, которая принимает целочисленный аргументn. - Внутри функции
fиспользуется тернарный оператор для определения базового случая: еслиnбольше 1, то происходит рекурсивный вызов функцииfс аргументомn-1, умноженным наn. Еслиnравно 1, то возвращается 1. - В функции main создается переменная
nтипаunsignedдля хранения введенного числа. - Затем в цикле while происходит запрос на ввод числа с помощью функции
scanfи вывод его факториала с помощью функцииprintf. Цикл продолжается, пока пользователь не введет ноль. - Наконец, функция
mainвозвращает 0, что означает успешный конец работы программы.