欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

367. 有效的完全平方数

程序员文章站 2022-03-13 12:53:29
...

给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。

说明:不要使用任何内置的库函数,如  sqrt

示例 1:

输入:16
输出:True

示例 2:

输入:14
输出:False

思路:此题和x的平方根类似,稍微变一下就可以

代码:

class Solution {
public:
    bool isPerfectSquare(int x) {
        if(x==0)
            return 0;
        int q=1,p,temp;
        if(x>46340)                //依据x是否大于46340来取p的值
            p=46340;
        else
            p=x;
        while(q<=p)               //不断二分
        {
            temp=q+(p-q)/2;
            if(temp*temp==x)
                return 1;
            else if(temp*temp>x)
                p=temp-1;
            else
                q=temp+1;
        }
        return 0;
    }
};

 

相关标签: 二分法