Вычислить N! произведение всех натуральных чисел от 1 до N - C (СИ)
Формулировка задачи:
В чем ошибка кода?
Листинг программы
- #include <stdio.h>
- int main()
- {
- int a,b,c;
- scanf("%d",&c);
- b=1;
- for(a=2;c;b=b*a)
- printf("%d",b);
- return 0;
- }
Решение задачи: «Вычислить N! произведение всех натуральных чисел от 1 до N»
textual
Листинг программы
- int fact (int n)
- {
- return (n==1) ? 1: fact(n-1);
- }
- int main
- {
- int res = 0, n = 0;
- scanf("%d", n);
- res = fact(n);
- printf("Result: %d", res);
- return 0;
- }
Объяснение кода листинга программы
- В функции fact(int n) реализован рекурсивный алгоритм вычисления факториала числа n.
- Если n равно 1, то функция возвращает 1.
- В противном случае, функция вызывает саму себя, передавая в качестве аргумента n-1, и результат этого вызова подставляет в качестве результата в текущий вызов функции.
- В функции main() объявлены две переменные: res и n.
- С помощью scanf() в переменную n считывается натуральное число, которое будет использоваться в качестве аргумента для функции fact().
- Результат вычисления факториала сохраняется в переменной res.
- С помощью printf() на экран выводится сообщение с результатом вычисления факториала.
- Функция main() возвращает 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д