设计函数int sqrt(int x),计算x的平方根。
格式:
输入一个数x,输出它的平方根。直到碰到结束符号为止。
分析:2分,找到一个最为接近的数,要注意的是强制转化 1.999999转化成int 还是1;
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
double x;
while(cin>>x)
{
double low=1,high=x;
while(1)
{
double mid=(low+high)/2;
if(fabs(mid*mid-x)<1e-6)
int k=(int)(mid+0.00001);//mid 有两种情况, 1:mid <sqrt(x) 2:mid>sqrt(x) 第一种情况出来时 强制转化可能会少1 ,+一个很少的数即可
printf(" %.6lf ",mid);
cout<<k<<endl;
break;
}
else if(mid*mid>x)
{
high=mid;
}
else if(mid*mid<x)
{
low=mid;
}
}
}
return 0;
}