# x 的平方根

<p>实现&nbsp;<code>int sqrt(int x)</code>&nbsp;函数。</p>
<p>计算并返回&nbsp;<em>x</em>&nbsp;的平方根，其中&nbsp;<em>x </em>是非负整数。</p>
<p>由于返回类型是整数，结果只保留整数的部分，小数部分将被舍去。</p>
<p><strong>示例 1:</strong></p>
<pre><strong>输入:</strong> 4<strong><br />输出:</strong> 2</pre>
<p><strong>示例 2:</strong></p>
<pre><strong>输入:</strong> 8<strong><br />输出:</strong> 2<strong><br />说明:</strong> 8 的平方根是 2.82842..., 由于返回类型是整数，小数部分将被舍去。</pre>

## template

```cpp
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
	int mySqrt(int x)
	{
		if (x == 0)
		{
			return 0;
		}
		unsigned int lo = 1, hi = x;
		unsigned int mid = (lo + hi) / 2;
		for (;;)
		{
			if (mid > x / mid)
			{
				hi = mid;
			}
			else
			{
				if (mid + 1 > x / (mid + 1))
				{
					break;
				}
				else
				{
					lo = mid;
				}
			}
			mid = (lo + hi) / 2;
		}
		return mid;
	}
};
```

## 答案

```cpp

```

## 选项

### A

```cpp

```

### B

```cpp

```

### C

```cpp

```