遇到完美广场代码问题
import java.util.*;
public class perfectsquare {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s= new Scanner(System.in);
double number;
System.out.println("Enter number >");
number= s.nextDouble();
System.out.println(Math.sqrt(number));
}
}
使用if,否则你怎么能让它返回一个像sqrt 9 = 3的完美正方形但如果该数字的平方根是十进制则为假,例如squareroot为10将是3.122222 .....
答案 0 :(得分:3)
if(Math.round(Math.sqrt(number))==Math.sqrt(number)){
//it is a perfect square
}
答案 1 :(得分:2)
您可以将返回类型更改为Object
(但在使用此功能时,您必须使用instanceof
检查它是否为数字)或返回-1
而不是false
要查看它是否是完美的正方形,请使用:
if(Math.sqrt(number) % 1 == 0) {
return number;
} else {
return -1;
}
答案 2 :(得分:0)
import java.util.*;
public class perfectsquare {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s= new Scanner(System.in);
double number;
System.out.println("Enter number >");
number= s.nextDouble();
double sqr= Math.sqrt(number);
//System.out.println(sqr);
double num=sqr;
double x;
x=num%1;
x=num-Math.floor(num);
if(x>0){
System.out.println("False");
}
else{
System.out.println(sqr);
}
}
}
这样可行。