利用牛顿迭代法求平方根
公式:http://baike.baidu.com/link?url=wxzLgo_PJfRl30m033FKTbThHLbuWapcTLPeFxYF-XZrdCo-sDUROfvqLrYYOKz6lqbrmvVw7Z8I7GnPf7xxia
// Example program
#include <iostream>
#include <math.h>
using namespace std;
double sqrt(double c, double EPS){
if(c <= 0.0){
return 0.0;
}
double x = 1.0;
double t = c;
do{
x = t;
t = (x + c/x)/2.0;
}while(fabs(t-x) > EPS);
return t;
}
int main()
{
std::cout << sqrt(1)<<endl;
std::cout << sqrt(2)<<endl;
std::cout << sqrt(5)<<endl;
std::cout << sqrt(100)<<endl;
std::cout << sqrt(99999)<<endl;
return 0;
}