Реализуйте рекурсивный алгоритм для вычисления квадратного корня числа - C#
Формулировка задачи:
Вот задание:
Реализуйте рекурсивный алгоритм для вычисления квадратного корня числа. в качестве исходных данных используйте тройку чисел N, A, E, где N -число, из которого требуется извлечь квадратный корень, A -приближенное значение корня, E- допустимая ошибка результата.
Вот код:
Выдает ошибку StackOverflowException
{
class Programm
{
public static double root(double N, double A, double E)
{
if (Math.Abs(Math.Pow(A, 2) - N) < E)
{
return A;
}
else
{
return root(N, (Math.Pow(A, 2) + N) / 2 * A, E);
}
}
public static void Main(string[] args)
{
Console.WriteLine("Введите N");
double N = double.Parse(Console.ReadLine());
Console.WriteLine("Введите E");
double E = double.Parse(Console.ReadLine());
Console.WriteLine("Введите A");
double A = double.Parse(Console.ReadLine());
double x = root(N, A, E);
Console.WriteLine(x);
Console.ReadKey();
}
}
}Решение задачи: «Реализуйте рекурсивный алгоритм для вычисления квадратного корня числа»
textual
Листинг программы
return root(N, (Math.Pow(A, 2) + N) / (2 * A), E);