Рекурсивная функция, вычисления факториала - 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);
}

Объяснение кода листинга программы

  1. Включаем стандартную библиотеку файл для использования функций ввода-вывода.
  2. Определяем функцию factorial(long), которая принимает целочисленный аргумент и возвращает результат вычисления факториала.
  3. В функции main() объявляем две переменные типа long a и b для ввода двух слагаемых.
  4. Выводим сообщение Enter 2 summand: и считываем два целых числа с помощью функции scanf(), указывая адрес переменных a и b.
  5. Вычисляем факториал для каждого из слагаемых с помощью функции factorial() и сохраняем результаты в переменные a и b.
  6. Складываем результаты вычисления факториала для обоих слагаемых.
  7. Выводим результат на экран с помощью функции printf(), указывая формат вывода long для 3-го аргумента.
  8. Возвращаем 0 из функции main(), чтобы указать, что программа успешно завершилась.
  9. В функции factorial(long) проверяем базовый случай: если a равно 0 или 1, то возвращаем 1.
  10. В противном случае, рекурсивно вызываем функцию factorial() для аргумента a-1 и умножаем результат на a.
  11. Возвращаем полученный результат из функции factorial().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы