Вычислить значение выражения с помощью рекурсивной функции - C (СИ) (79594)

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

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

Есть условие: нужно вычислить значение выражения типа V1+V2+Vn, с помощью рекурсивной функции. где V-это общий корень, сори за корявость -). я такой код писал
double func(int n)
{
       double sum;
       if(n<2) sum=1;
       else sum+=sqrt(n-- + sqrt(func(n-1)));
       return sum;
}
При н=6 пишет переполнен стек *( Подскажите где ошибка? Зарание спасибо.

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

textual
Листинг программы
#include <stdio.h>
#include <conio.h>]
 
float f(int n)
{
       if (n>0) return sqrt(n) + f(--n);
}
void main()
{
     printf("%f",f(6));
     getch();
}

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

  1. #include - подключает файл стандартного ввода/вывода, что позволяет использовать функции для работы с консолью
  2. #include - подключает файл conio.h, который содержит функции для работы с консолью, такие как getch()
  3. float f(int n) - объявление функции с именем f, которая принимает целочисленный аргумент n и возвращает значение с плавающей точкой (float)
  4. if (n>0) return sqrt(n) + f(--n); - рекурсивный вызов функции f с аргументом n, уменьшенным на 1, если n больше 0. В противном случае возвращается квадратный корень из n
  5. void main() - объявление функции main, которая не возвращает значение и является точкой входа в программу
  6. printf(%f,f(6)); - вывод значения функции f(6) с использованием функции printf, которая форматирует и выводит данные в консоль
  7. getch(); - блокирующий вызов, который ожидает нажатия клавиши, чтобы программа могла продолжить выполнение
  8. return 0; - завершение функции main, что означает успешный конец работы программы

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


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

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

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