计蒜客—x的平方根(二分)

题目链接:https://nanti.jisuanke.com/t/17

设计函数int sqrt(int x),计算 x 的平方根。

输入格式

输入一个 整数 xx,输出它的平方根。直到碰到文件结束符(EOF)为止。

输出格式

对于每组输入,输出一行一个整数,表示输入整数的平方根。

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int Sqrt(int n)                   //二分
{
    if(n<0)
        return n;
    double mid,last;
    double low,up;
    low=0,up=n*1.0;
    mid=(low+up)/2;
    do
    {
        if(mid*mid>n)
            up=mid;
        else
            low=mid;
        last=mid;
        mid=(up+low)/2;
    }while(fabs(mid-last) > 0.0000000000000001);//精度控制,double精度为15~16位
    return mid;
}
int main()
{
    int x;
    while(cin>>x)
    {
        cout<<Sqrt(x)<<endl;
    }
    return 0;
}

附:C语言中sqrt的实现(有兴趣的可以看看)

https://blog.csdn.net/qq_26499321/article/details/73724763 

猜你喜欢

转载自blog.csdn.net/qq_41157137/article/details/82887738