目录
题目:
给你一个非负整数 x
,计算并返回 x
的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
思路:
遍历判断如果一个数的平方小于给定数,并且这个数加一的平方大于给定数,返回这个数。(该题需注意超出范围的问题,以及超出运算时间的问题)
代码:
cs
int mySqrt(int x) {
if(x==1)
{
return 1;
}
for(int i=0;i<=x/2;i++)
{
if((long long )i*i<=x&&(long long )(i+1)*(i+1)>x)
{
return (int )i;
}
}
return 0;
}
再接再励吧!!!!!!!
脑袋空空。
如果有更好的方案,请赐教,感谢!