您的位置:首页 > 其它

[2014创新工场笔试]求一个正数的开方,不能使用库函数sqrt,精度在0.001以内即可

2013-10-03 22:39 351 查看
#include <iostream>
using namespace std;

const double g_cPrecision = 0.001;

double mySqrt(double dInput)
{
if (dInput<0){
cout<<"Illegal Input! input = "<<dInput<<endl;
return -1.0;
}

double dStart = 0.0;
double dEnd   = dInput;
double dMid   = dInput;
while ( abs(dInput-dMid*dMid)>g_cPrecision ){
dMid   = (dStart+dEnd)/2;
dInput<dMid*dMid?	dEnd=dMid :	dStart=dMid;
}

return dMid;
}

int main()
{
int dValue = 1.0;

dValue = 1.0;
cout<<"input: "<<dValue<<", squared root:"<<mySqrt(dValue)<<endl;
dValue = 5.1;
cout<<"input: "<<dValue<<", squared root:"<<mySqrt(dValue)<<endl;
dValue = 0.0;
cout<<"input: "<<dValue<<", squared root:"<<mySqrt(dValue)<<endl;
dValue = -6.7;
cout<<"input: "<<dValue<<", squared root:"<<mySqrt(dValue)<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐