367. 有效的完全平方数
作者:互联网
- 有效的完全平方数
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
来源:力扣(LeetCode)
解法一:
public static boolean isPerfectSquare(int num) {
int i=num;
if(num%2==0) {
while(i!=0) {
if(i*i-num==0)return true;
i-=2;
}
}else {
while(i!=-1) {
if(i*i-num==0)return true;
i-=2;
}
}
return false;
}
解法二:
public static boolean isPerfectSquare(int num) {
int i=Integer.toString(num).length();
i=(i-1)/2;
int j=(int)Math.pow(10.0, i);
if(j==1)j=0;
switch(num%10) {
case 0:{
while(j<=num){
if(j*j-num==0) {return true;}
j+=10;
}
}
break;
case 1:{
j+=1;
while(j<=num){
if(j*j-num==0) {return true;}
j+=8;
if(j*j-num==0) {return true;}
j+=2;
}
}
break;
case 4:{
j+=2;
while(j<num){
if(j*j-num==0) {return true;}
j+=6;
if(j*j-num==0) {return true;}
j+=4;
}
}
break;
case 5:{
j+=5;
while(j<num){
if(j*j-num==0) {return true;}
j+=10;
}
}
break;
case 6:{
j+=4;
while(j<num){
if(j*j-num==0) {return true;}
j+=2;
if(j*j-num==0) {return true;}
j+=8;
}
}
break;
case 9:{
j+=3;
while(j<num){
if(j*j-num==0) {return true;}
j+=4;
if(j*j-num==0) {return true;}
j+=6;
}
}
break;
default:
break;
}
return false;
}
标签:平方,return,int,break,有效,while,num,367,true 来源: https://blog.csdn.net/m0_45123364/article/details/111769800