Вычисления при заданном значении х и n с использованием циклической и рекурсивной функции - C (СИ)
Формулировка задачи:
Составить программы вычисления при заданном значении х и n с использованием циклической и рекурсивной функции.
нашла закономерность у числителя 1*1 1*2 2*2 2*3 3*3 3*4 4*4 ...
формула для числителя :
и где круглые скобки означают квадратные скобки в математике, то есть Операция взятия целой части числа
цепная дробь тут
Решение задачи: «Вычисления при заданном значении х и n с использованием циклической и рекурсивной функции»
textual
Листинг программы
#include <stdio.h> double rec_func(double x, int counter, int n) { if (counter > n) { return 1; } else { return (x + 2 * counter / rec_func(x, counter + 1, n)); } } double loop_func(double x, int n) { int i; double b = 1.0; for (i = n; i > 0; i--) { b = x + 2.0 * i / b; } return b; } int main(int argc, char *argv[]) { double x = 1.0; int n = 8; int counter = 1; double divider = rec_func(x, counter, n); double result = 1 / divider; printf("%Ef\n", result); divider = loop_func(x, n); result = 1 / divider; printf("%Ef\n", result); return 0; }
Объяснение кода листинга программы
- Включаем файл стандартного ввода/вывода
- Определяем две функции: rec_func и loop_func
- В функции rec_func происходит рекурсивное вычисление значения при заданных параметрах x, counter и n
- Если значение counter больше n, то возвращаем 1
- В противном случае, возвращаем результат вычисления (x + 2 * counter / rec_func(x, counter + 1, n))
- В функции loop_func происходит итеративное вычисление значения при заданных параметрах x и n
- Используем цикл for для перебора значений от n до 1 с шагом -1
- Внутри цикла обновляем значение b с помощью формулы (x + 2.0 * i / b)
- Возвращаем полученное значение b
- В функции main задаем значения x = 1.0 и n = 8
- Инициализируем переменные counter и divider со значениями 1 и 1.0 соответственно
- Вызываем функцию rec_func с параметрами x, counter и n, и сохраняем результат в переменную divider
- Вычисляем результат с помощью формулы 1 / divider и выводим его на экран с помощью функции printf
- Вызываем функцию loop_func с параметрами x и n, и сохраняем результат в переменную divider
- Вычисляем результат с помощью формулы 1 / divider и выводим его на экран с помощью функции printf
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д