2022年11月29日 星期二

[367] Valid Perfect Square

啊~感覺又是一個數學的問題啊 XD~~~~
邊界值一直搞不定
可能是我現在有點不想思考的關係><
bool isPerfectSquare(int num){
int low=1;
int high=num;
long mid;
while (low<=high)
{
mid= low+ (high-low)/2;
long tmp=mid*mid;
if(tmp ==num)
return true;
else if (tmp > num)
high=mid-1;
else
low = mid+1;

}
return false;
}

寫完後看到下面這種寫法,感覺很直覺?!
跟求質數好像有點類似。
不過還是會忘記在while 裡面加上等於,
並且while 裡面就要 n*n 了不然會超過時間喔喔喔喔喔~~~~~~~~~~~~~

bool isPerfectSquare(int num){
long n=1;
while (n*n<=num){
if (n*n ==num)
return true;
n++;
}
return false;
}

沒有留言:

張貼留言