有效的完全平方数
给定一个 正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 true,否则返回 false。
进阶:不要 使用任何内置的库函数,如 sqrt。
示例 1:
输入:num = 16 输出:true
示例 2:
输入:num = 14 输出:false
提示:
- 1 <= num <= 2^31 - 1
我的代码:
// 使用sqrt的版本 class Solution { public: // 考查下sqrt的使用 bool isPerfectSquare(int num) { return (int) sqrt(num) * (int) sqrt(num) == num; } };
// 进阶版本 class Solution { public: bool isPerfectSquare(int num) { // 慢慢枚举 long x = 1, square = 1; while (square <= num) { // 如果square大于num了之后还没有出去 那么就是false了 if (square == num) { return true; } ++x; square = x * x; } return false; } };