刷Leetcode时错误:
class Solution {
public:
int mySqrt(int x) {
int index=1;
long long square=1;
while(square<=x){
if(square==x)
return index;
index++;
square=index*index;
}
return index-1;
}
};
两个int*int型变量相乘结果显示溢出,虽然square已经声明为long long,但是 int*int的结果先放在int变量中,与前面的变量类型无关。
解决方法:
把index声明为long或者long long类型。