Рекурсивная функция, вычисления факториала - C (СИ)
Формулировка задачи:
Вычислить выражение G =N!+M! , где для вычисления факториала используется рекурсивная функция.
Решение задачи: «Рекурсивная функция, вычисления факториала»
textual
Листинг программы
#include<stdio.h> long factorial(long); int main(void) { long a, b; printf("Enter 2 summand: "); scanf("%ld%ld", &a, &b); printf("%ld", factorial(a)+factorial(b)); return 0; } long factorial(long a) { if(a==0 || a==1) return 1; else return a*factorial(a-1); }
Объяснение кода листинга программы
- Включаем стандартную библиотеку файл
для использования функций ввода-вывода. - Определяем функцию factorial(long), которая принимает целочисленный аргумент и возвращает результат вычисления факториала.
- В функции main() объявляем две переменные типа long a и b для ввода двух слагаемых.
- Выводим сообщение
Enter 2 summand:
и считываем два целых числа с помощью функции scanf(), указывая адрес переменных a и b. - Вычисляем факториал для каждого из слагаемых с помощью функции factorial() и сохраняем результаты в переменные a и b.
- Складываем результаты вычисления факториала для обоих слагаемых.
- Выводим результат на экран с помощью функции printf(), указывая формат вывода long для 3-го аргумента.
- Возвращаем 0 из функции main(), чтобы указать, что программа успешно завершилась.
- В функции factorial(long) проверяем базовый случай: если a равно 0 или 1, то возвращаем 1.
- В противном случае, рекурсивно вызываем функцию factorial() для аргумента a-1 и умножаем результат на a.
- Возвращаем полученный результат из функции factorial().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д