Вычисления при заданном значении х и 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;
}

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

  1. Включаем файл стандартного ввода/вывода
  2. Определяем две функции: rec_func и loop_func
  3. В функции rec_func происходит рекурсивное вычисление значения при заданных параметрах x, counter и n
  4. Если значение counter больше n, то возвращаем 1
  5. В противном случае, возвращаем результат вычисления (x + 2 * counter / rec_func(x, counter + 1, n))
  6. В функции loop_func происходит итеративное вычисление значения при заданных параметрах x и n
  7. Используем цикл for для перебора значений от n до 1 с шагом -1
  8. Внутри цикла обновляем значение b с помощью формулы (x + 2.0 * i / b)
  9. Возвращаем полученное значение b
  10. В функции main задаем значения x = 1.0 и n = 8
  11. Инициализируем переменные counter и divider со значениями 1 и 1.0 соответственно
  12. Вызываем функцию rec_func с параметрами x, counter и n, и сохраняем результат в переменную divider
  13. Вычисляем результат с помощью формулы 1 / divider и выводим его на экран с помощью функции printf
  14. Вызываем функцию loop_func с параметрами x и n, и сохраняем результат в переменную divider
  15. Вычисляем результат с помощью формулы 1 / divider и выводим его на экран с помощью функции printf
  16. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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