Написать рекурсивную функцию для вычисления выражения - 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;
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку файл формата .h, который содержит функции для ввода/вывода данных, нужные для отправки сообщений в консоль.
- У нас есть функция с именем recursion, которая принимает целочисленный параметр типа int, в данном случае это a.
- Внутри функции, с помощью условного оператора if, проверяем значение переменной a.
- Если a равно 1, то возвращаем 1.
- Если a равно 2, то возвращаем 2.
- Если a не равно 1 и a не равно 2, то возвращаем сумму a и результат вызова функции recursion с аргументом a-3.
- В функции main, объявляем переменные res_n и res_d, которые будут использоваться для хранения результатов рекурсивных вычислений.
- Задаем начальное значение для переменной res_n, вызывая функцию recursion с аргументом 301.
- Задаем начальное значение для переменной res_d, вызывая функцию recursion с аргументом 272.
- Вычисляем значение переменной res, разделив res_n на res_d.
- С помощью функции printf выводим значение переменной res в консоль.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.