给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
示例 1:
输入:16
输出:True
示例 2:
输入:14
输出:False
两个思路:
1.从0~num/2+1,存在一个数的平方为num即为完全平方数,不存在则不是
2.通过列举所有的完全平方数,1,4,9,16,25,36,49,64,81,100…等等,发现完全平方数的差都为奇数,即1,3,5,7,9,11,13,15…等等~所以可以判断完全平方数应该是N个奇数的和。
public boolean isPerfectSquare(int num) {
//思路一
// for (int i = 1; num > 0; i+=2)
// num-=i;
// return num == 0;
//思路二
boolean flag = false;
for (int i=0;i<=num/2+1;i++){
if (num==i*i){
flag = true;
}
}
return flag;
}