# 69. Sqrt(x)

## 題目原文

Implement `int sqrt(int x)`.

Compute and return the square root of *x*, where *x* is guaranteed to be a non-negative integer.

Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.

**Example 1:**

```
Input: 4
Output: 2
```

**Example 2:**

```
Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since 
             the decimal part is truncated, 2 is returned.
```

## **解題思路**

{% hint style="info" %}

{% endhint %}

## 程式解答

```cpp
class Solution 
{
public:
    int mySqrt(int x) 
    {
        int left = 0;
        int mid = 0;
        int right = x;
        
        if (x <= 1)
            return x;
        
        while (left < right)
        {
            mid = left + (right - left) / 2;
            if ((x / mid) < mid)
                right = mid;
            else if ((x / mid) >= mid)
                left = mid + 1;
        }
        return right - 1;
    }
};
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://stanley7342.gitbook.io/programming/leetcode/69.-sqrt-x.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
