X的平方根

来源:互联网 发布:手机时钟同步软件 编辑:程序博客网 时间:2024/05/17 01:04

题目:

思路:二分查找

#include<stdio.h>int sqrt(int x){    long long low=0,mid = 0;    long long high = (long long)x;    while(low<=high){        mid = (low + high)/2;        if(mid*mid == x) return mid;        if(mid*mid < x && (mid+1)*(mid+1) > x)        {            return mid ;        }        if(mid*mid > x && (mid-1)*(mid-1) < x)        {            return mid -1;        }        if(mid*mid > x){            high = mid - 1;        }else{            low = mid + 1;        }    }    return (int)mid;  }int main(){    long long a = 0;    while(scanf("%lld",&a)!=EOF)    {        printf("%d\n",sqrt(a));    }    return 0;}