A better implementation - works for 1 and 4 ..
//calculate the square root of a number
#include
#include
#include //atof
using namespace std;
const double precision = 10e-8;
double squareRoot(double number)
{
double lo = 0.0;
double hi = 0.0;
double prev = 0.0;
double mid = number/2.0;
if (pow(number, 2) == number)
{
return number;
}
while(abs(mid - prev) > precision)
{
//cout number)
{
hi = mid;
}
else
{
lo = mid;
}
prev = mid;
mid = (lo + hi) /2.0;
}
return mid;
}
int main (int argc, char *argv[])
{
double inputNum;
for (int i = 1; i < argc; i++)
{
inputNum = atof (argv[i]);
cout << "square root of " << argv[i] << " is ... " << squareRoot(inputNum) << endl;
}
return 0;
}