Вычислить значение выражения с помощью рекурсивной функции - C (СИ) (79594)
Формулировка задачи:
Есть условие: нужно вычислить значение выражения типа V1+V2+Vn, с помощью рекурсивной функции.
где V-это общий корень, сори за корявость -).
я такой код писал
При н=6 пишет переполнен стек *(
Подскажите где ошибка? Зарание спасибо.
double func(int n)
{
double sum;
if(n<2) sum=1;
else sum+=sqrt(n-- + sqrt(func(n-1)));
return sum;
}Решение задачи: «Вычислить значение выражения с помощью рекурсивной функции»
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();
}
Объяснение кода листинга программы
- #include
- подключает файл стандартного ввода/вывода, что позволяет использовать функции для работы с консолью - #include
- подключает файл conio.h, который содержит функции для работы с консолью, такие как getch() - float f(int n) - объявление функции с именем f, которая принимает целочисленный аргумент n и возвращает значение с плавающей точкой (float)
- if (n>0) return sqrt(n) + f(--n); - рекурсивный вызов функции f с аргументом n, уменьшенным на 1, если n больше 0. В противном случае возвращается квадратный корень из n
- void main() - объявление функции main, которая не возвращает значение и является точкой входа в программу
- printf(
%f,f(6)); - вывод значения функции f(6) с использованием функции printf, которая форматирует и выводит данные в консоль - getch(); - блокирующий вызов, который ожидает нажатия клавиши, чтобы программа могла продолжить выполнение
- return 0; - завершение функции main, что означает успешный конец работы программы