367. Valid Perfect Square
设置一个字数subNum = 1 并且不断+2 一次得到所有的平方数 1 4 9 看看超过num的时候二者是否相等的就行
记住要定义成long类型的 这样不会溢出 或者改用减法的形式
Given a positive integer num, write a function which returns True if num is a perfect square else False.
Note: Do not use any built-in library function such as sqrt
.
Example 1:
Input: 16
Output: true
Example 2:
Input: 14
Output: false
public boolean isPerfectSquare(int num) {
int subNum = 1;
while (num > 0) {
num -= subNum;
subNum += 2;
}
return num == 0;
}
自己整的:
class Solution {
public boolean isPerfectSquare(int num) {
long sum = 1;
long i = 1;
while(num > sum){
i += 2;
sum += i;
}
return num == sum;
}
}
//int就报错 最后显示超过范围
class Solution {
public boolean isPerfectSquare(int num) {
int sum = 1;
int i = 1;
while(num > sum){
i += 2;
sum += i;
}
return num == sum;
}
}
// 1 1
// 3
// 2 4
// 5
// 3 9
// 7
// 4 16
// 9
// 5 25
// 11
// 6 36
// 13
// 7 49