1

遇到完美方码问题

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,else 如何让它返回一个完美的平方,如 9=3 的 sqrt 但如果该数字的平方根是小数,例如 10 的平方根将是 3.122222,则返回 false .....

4

3 回答 3

3
if(Math.round(Math.sqrt(number))==Math.sqrt(number)){
  //it is a perfect square
}
于 2013-02-02T02:18:00.920 回答
2

您可以将返回类型更改为Object(但您必须检查它是否是instanceof使用函数时使用的数字)或返回-1而不是 false

要查看它是否是一个完美的正方形,请使用以下命令:

if(Math.sqrt(number) % 1 == 0) {
    return number;
} else {
    return -1;
}
于 2013-02-02T02:17:06.300 回答
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);
        }
    }
}

这将起作用。

于 2013-02-02T02:21:57.617 回答