Вычисления при заданном значении х и 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д