计算并返回x的平方根,其中x是一个非负整数。
由于返回类型是整数,所以小数位数被截断,并且返回结果的整数部分。
1. 直接使用java的sqrt()函数
int mySqrt(int x)
{
if (x < 0)
{
return -1;
}
return (int) Math.sqrt(x);
}
2. 利用x = y * y 的原理
int mySqrt(int x)
{
int i = 0;
int k = x / 2;
// 如果x为负数,返回-1
if (x < 0)
{
return -1;
}
if (x == 1)
{
return x;
}
// 考虑到两个整数数int 相乘可能变成负数(越界)情况
for (i=0; i<= k; i++)
{
long val = (long) i * i;
if (val > x)
{
break;
}
}
return i-1;
}