Посчитать факториал в отдельной функции - C (СИ)
Формулировка задачи:
Помогите, пожалуйста, решить задачу. Для сайта contester.ru
Вводится целое число A. Выведите его факториал. Все операции ввода и вывода должны находиться в функции main, а все рассчёты -- в отдельной функции.
Спасибо!
Ввод
Ввод содержит A(0 < A < 12).Вывод
Выведите A!.| Ввод |
| 12 |
| Вывод |
| 479001600 |
Решение задачи: «Посчитать факториал в отдельной функции»
textual
Листинг программы
#include<stdio.h>
#include <conio.h>
int factr(int n);
main()
{
int a;
printf("Input a ");
scanf("%d",&a);;
printf("a!= %d ",factr(a));
getchar();
getchar();
return 0;
}
/* рекурсивная функция */
int factr(int n)
{
int answer;
if(n==1) return(1);
answer = factr(n-1)*n; /* рекурсивный вызов */
return(answer);
}
Объяснение кода листинга программы
В этом коде:
- В функции
main()программа запрашивает у пользователя ввод целого числа с помощью функцииscanf(). - Затем она вызывает функцию
factr(a), чтобы вычислить факториал числаa, и выводит результат с помощьюprintf(). - В функции
factr(n)используется рекурсивный подход для вычисления факториала числаn. - Если
nравно 1, функция возвращает 1. - В противном случае, она вызывает саму себя с аргументом
n-1и результатом этого вызова умножаетn. - Полученный результат возвращается.