今天写了关于求解x的平方根的问题,但是题目要求不能使用类似与pow()这样的函数,所以我想到了用二分查找的方法。关于二分查找有一些知识点记不太清了,于是复习之后,开始构思了这道题目的解题方法。
考虑用二分法之后,我就开始理清思路,
如果这个整数的平方 恰好等于 输入整数,那么我们就找到了这个整数;如果这个整数的平方 严格大于 输入整数,那么这个整数肯定不是我们要找的那个数;如果这个整数的平方 严格小于 输入整数,那么这个整数 可能 是我们要找的那个数。
我们可以使用「二分查找」来查找这个整数,不断缩小范围去猜。猜的数平方以后大了就往小了猜;猜的数平方以后恰恰好等于输入的数就找到了;猜的数平方以后小了,可能猜的数就是,也可能不是。根据以上的思路,我们容易知道,题目要我们返回的整数是有范围的,直觉上一个整数的平方根肯定不会超过它自己的一半,但是 00 和 11 除外,因此我们可以在 11 到输入整数除以 22 这个范围里查找我们要找的平方根整数。00 单独判断一下就好。
接下来看看代码吧,有参控大佬们的方法和思路,好在最后也成功运行起来了。
这就是今日所学,还需继续努力,继续加油,希望期末不挂!!!