Рекурсивный метод вычисления суммы корней - C#
Формулировка задачи:
Есть задача написать рекурсивный метод возвращающий значение.
Вот задание: , для натурального N.
Вот код Для двух нормально считает, потом уже нет. Помогите исправить ошибку в алгоритме.
static double F(double n)
{
if (n == 1) return 1;
else return Math.Pow((F(n-1)+Math.Pow(n,0.5)),0.5);
}
static void Main(string[] args)
{
Console.WriteLine("Введите N");
double n = double.Parse(Console.ReadLine());
double x = F(n);
Console.WriteLine(x);
}Решение задачи: «Рекурсивный метод вычисления суммы корней»
textual
Листинг программы
namespace Recursia
{
class Program
{
static int current = 0;
static double F(int n)
{
if (n < 1)
return 0;
current++;
if (n == current)
{
int temp = current;
current = 0;
return Math.Sqrt(temp);
}
else
{
return Math.Sqrt(current + F(n));
}
}
static void Main(string[] args)
{
double x;
x = F(4);
Console.WriteLine(x);
x = F(4);
Console.WriteLine(x);
Console.ReadLine();
}
}
}