编辑代码

#include <stdio.h>
int newSqrt(long n)

{

//	if(n == 0) return 0;
	long low, high, mid, tmp;

	// 获取上下界

	if (n > 1) {

		low = 1;

		high = n;

	} else {

		low = n;

		high = 1;

	}

	// 二分法求开方

	while (low <= high) {

		mid = (low + high) / 2;

		tmp = mid * mid;

		if ((mid + 1) * (mid + 1) >= n && (mid - 1) * (mid - 1) <= n)
		{

			return mid;

		} else if (tmp > n)
		{

			high = mid;

		} else
		{

			low = mid;

		}

	}

	return -1;

}
int main () {
    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
    printf("%d", newSqrt(320000));
    return 0;
}