Вычислить выражение (с использованием рекурсии) - C (СИ)
Формулировка задачи:
Вычислить выражение с использованием рекурсивных функций
Решение задачи: «Вычислить выражение (с использованием рекурсии)»
textual
Листинг программы
#include <stdio.h>
double foo(void);
int n, i = 0;
double a, product = 1;
int main()
{
scanf("%d%lf", &n, &a);
if (!a)
product = 0;
printf("%g\n", foo());
return 0;
}
double foo(void)
{
product *= a + i;
while (i + 1 < n) {
++i;
foo();
}
return product;
}
Объяснение кода листинга программы
В этом коде выполняется вычисление значения выражения с использованием рекурсии. Вот список элементов кода с номерами в порядке их появления:
- 1. Объявление функции
foo(). - 2. Объявление переменных
n,iиa. - 3. Получение значений переменных
nиaс помощью функцииscanf(). - 4. Проверка значения переменной
a. Если оно равно нулю, то значение переменнойproductустанавливается равным нулю. - 5. Вывод значения переменной
productс помощью функцииprintf(). - 6. Вернуть значение переменной
productиз функцииmain(). - 7. Вход в рекурсивную функцию
foo(). - 8. Умножение значения переменной
productна суммуaиi. - 9. Увеличение значения переменной
iна единицу. - 10. Вызов рекурсивной функции
foo(). - 11. Повторение шагов 9 и 10 до тех пор, пока значение переменной
iменьшеn. - 12. Возврат значения переменной
productиз рекурсивной функцииfoo(). - 13. Конец функции
foo(). - 14. Конец функции
main(). - 15. Конец программы.