完美的方形,如果,否则

时间:2013-02-02 02:11:49

标签: java

遇到完美广场代码问题

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 .....

3 个答案:

答案 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);
        }
    }
}

这样可行。