Sqrt(x)解題報告

</pre><pre name="code" class="cpp">int mySqrt(int x) {
		int e = 0;
		long long ret = 0;
		while((long long)(ret * ret) <= (long long)x){
			ret = (int)pow(2.0, e++);
		}
		int l = 0;
		int r = ret;
		while(l <= r){
			int mid = (l + r) >> 1;
			int sq = mid * mid;
			if(sq == x)	return mid;
			else if(sq > x || sq < 0)	r = mid - 1;
			else l = mid + 1;
		}
		return l - 1;
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章