Написать рекурсивную функцию для вычисления выражения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите написать рекурсию, задание на прикрепленной картинке

Решение задачи: «Написать рекурсивную функцию для вычисления выражения»

textual
Листинг программы
#include <stdio.h>
 
 
int recursion(int a){
    if (a==1)
        return 1;
    if (a==2)
        return 2;
    if (a!=1 && a!=2)
        return a+recursion(a-3);
}
 
int main()
{   float res_n = 0, res_d = 0, res;
    res_n = recursion(301);
    res_d = recursion(272);
    res = res_n/res_d;
    printf("%.3f", res);
    return 0;
}

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

  1. Включаем стандартную библиотеку файл формата .h, который содержит функции для ввода/вывода данных, нужные для отправки сообщений в консоль.
  2. У нас есть функция с именем recursion, которая принимает целочисленный параметр типа int, в данном случае это a.
  3. Внутри функции, с помощью условного оператора if, проверяем значение переменной a.
  4. Если a равно 1, то возвращаем 1.
  5. Если a равно 2, то возвращаем 2.
  6. Если a не равно 1 и a не равно 2, то возвращаем сумму a и результат вызова функции recursion с аргументом a-3.
  7. В функции main, объявляем переменные res_n и res_d, которые будут использоваться для хранения результатов рекурсивных вычислений.
  8. Задаем начальное значение для переменной res_n, вызывая функцию recursion с аргументом 301.
  9. Задаем начальное значение для переменной res_d, вызывая функцию recursion с аргументом 272.
  10. Вычисляем значение переменной res, разделив res_n на res_d.
  11. С помощью функции printf выводим значение переменной res в консоль.
  12. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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

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