思路:二分查找
#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;
}