java判断完全平方数⋯⋯⋯⋯⋯⋯

这个用java判断完全平方数,输出yes或者no。⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯求大神不会啊⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯图片说明

两种方法都是可以的。

 public static boolean isSquares(int value) {
        if (value < 0) {
            return false;
        }
        double sqrtValue = Math.sqrt(value * 1.0);
        int sqrtSimiValue = (int) sqrtValue;
        if ((sqrtSimiValue * sqrtSimiValue) == value) {
            return true;
        } else {
            return false;
        }
    }

    public static boolean isSquares2(int value) {
        if (value < 0) {
            return false;
        }

        int item = value / 2;
        for (int index = item; index >= 0; index--) {
            if (index * index == value) {
                return true;
            }
        }
        return false;

    }

完整的代码

public class Squares{
 public static void main(String[] args) {

        try {
            boolean first = true;
            int[] inputs = new int[1024];
            int index = 0;
            int value = 0;
            while(true){
                BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));
                if(first){
                    System.out.print("请输入一组数,输入-1结束输入:");
                    first = false;
                } else {
                    System.out.print("请输入下一组数,输入-1结束输入:");
                }

                String str = strin.readLine();
                str = str.trim();
                value = Integer.valueOf(str);
                if(value == -1){
                    break;
                }
                inputs[index++] = value;
            }


            for(int i=0; i < index; i++ ){
                System.out.println(isSquares(inputs[i]));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static boolean isSquares(int value) {
        if (value < 0) {
            return false;
        }
        double sqrtValue = Math.sqrt(value * 1.0);
        int sqrtSimiValue = (int) sqrtValue;
        if ((sqrtSimiValue * sqrtSimiValue) == value) {
            return true;
        } else {
            return false;
        }
    }

    public static boolean isSquares2(int value) {
        if (value < 0) {
            return false;
        }

        int item = value / 2;
        for (int index = item; index >= 0; index--) {
            if (index * index == value) {
                return true;
            }
        }
        return false;

    }
}

很简单,使用Math类sqrt开方,把结果强制转换为int类型,然后将结果计算乘方,判断是否和原来的数相等,相等就是完全平方数。