LeetCode 367. 有效的完全平方数

题目描述: 有效的完全平方数

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

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

示例 1:

输入: 16

输出: True

示例 2:

输入: 14

输出: False

解题思路:

        当num很大时,i*i可能是比int大的,所以要用long或者long long。

代码:

class Solution {
public:
    bool isPerfectSquare(int num) {
        if(num == 1) return true;
        for(long long i = 2; i*i <= num; i ++){
            if(num%(i*i) == 0) {
                num = num/(i*i);
                i = 1;
            }
        }
        if(num == 1) return true;
        return false;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_33168253/article/details/80906419