昨天听朋友说去面试人家考了开方的算法,我就自己写了一个,自知效率不高,有情高人给指点一二。不胜感激static class Program
{
public static double i = 0;
static void Main()
{
Sqra(1.0, 1);
Console.ReadLine();
}
public static void Sqra(double number, double jump)
{
if (jump < 0.0000001)
{
Console.WriteLine(i.ToString());
return;
}
bool isWhile = true;
while (isWhile)
{
if (i * i == number)
{
isWhile = false;
Console.WriteLine(i.ToString());
}
if (i * i > number)
{
isWhile = false;
i -= jump;
Sqra(number, jump/10);
}
i += jump;
} }
{
public static double i = 0;
static void Main()
{
Sqra(1.0, 1);
Console.ReadLine();
}
public static void Sqra(double number, double jump)
{
if (jump < 0.0000001)
{
Console.WriteLine(i.ToString());
return;
}
bool isWhile = true;
while (isWhile)
{
if (i * i == number)
{
isWhile = false;
Console.WriteLine(i.ToString());
}
if (i * i > number)
{
isWhile = false;
i -= jump;
Sqra(number, jump/10);
}
i += jump;
} }
先找 2 (4)和3(9)之间
之后算十分位
在2.1 和 2.2之间
这样一直精确下去