Вычисления при заданном значении х и n с использованием циклической и рекурсивной функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Составить программы вычисления при заданном значении х и n с использованием циклической и рекурсивной функции. нашла закономерность у числителя 1*1 1*2 2*2 2*3 3*3 3*4 4*4 ... формула для числителя : и где круглые скобки означают квадратные скобки в математике, то есть Операция взятия целой части числа
цепная дробь тут

Решение задачи: «Вычисления при заданном значении х и n с использованием циклической и рекурсивной функции»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. double rec_func(double x, int counter, int n)
  4. {
  5.     if (counter > n) {
  6.         return 1;
  7.     }
  8.     else {
  9.         return (x + 2 * counter / rec_func(x, counter + 1, n));
  10.     }
  11. }
  12.  
  13. double loop_func(double x, int n)
  14. {
  15.     int i;
  16.     double b = 1.0;
  17.  
  18.     for (i = n; i > 0; i--) {
  19.         b = x + 2.0 * i / b;
  20.     }
  21.     return b;
  22. }
  23.  
  24. int main(int argc, char *argv[])
  25. {
  26.     double x = 1.0;
  27.     int n = 8;
  28.  
  29.     int counter = 1;
  30.     double divider = rec_func(x, counter, n);
  31.     double result = 1 / divider;
  32.     printf("%Ef\n", result);
  33.  
  34.     divider = loop_func(x, n);
  35.     result = 1 / divider;
  36.     printf("%Ef\n", result);
  37.  
  38.     return 0;
  39. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы