As a programming exercise I made a square root function in C# using recursion, here is the function:
static double root(double x, double increment, double num)
{
num += increment;
if ((num * num).ToString() == x.ToString())
return num;
else if (num * num < x)
return root(x, Math.Abs(increment), num);
else if (num * num > x)
return root(x, Math.Abs(increment / 2) * -1, num);
else
return double.NaN;
}
static double sqroot(double x)
{
return root(x, 10, 0);
}
It is able to do int.MaxValue
without a problem, but my question is, how can this be improved?