使用Java Math平方根方法计算从1到1000的平方根。然后只输出整数

使用Java Math平方根方法计算从1到1000的平方根。然后只输出整数,java,math,perfect-square,Java,Math,Perfect Square,使用Java Math平方根方法计算从1到1000的平方根。输出的只是整数。不要先计算平方,然后再打印出该数字的平方根。计算所有平方根并确定它们是否为整数 我查找了几个似乎围绕解决方案起舞的答案,但没有一个如此简洁。这是我到目前为止所拥有的 public class Assignment9 { public static void main(String[] args) { double root = 1; double sqrt = Math.s

使用Java Math平方根方法计算从1到1000的平方根。输出的只是整数。不要先计算平方,然后再打印出该数字的平方根。计算所有平方根并确定它们是否为整数

我查找了几个似乎围绕解决方案起舞的答案,但没有一个如此简洁。这是我到目前为止所拥有的

public class Assignment9
{
    public static void main(String[] args)
    {
        double root = 1;
        double sqrt = Math.sqrt(root);

        do
        {
            if(sqrt % 1 == 0)
            {
                System.out.printf("%.0f\t%.0f%n", root, Math.sqrt(root));
                root++;
            }
        }
        while(root <= 1000);
    }
}

您没有更新值sqrt。它总是只有1,因此sqrt%1总是0。

因为这显然是一个赋值,我宁愿给出一些提示而不是解决方案

需要考虑的要点:

  • 想想
    sqrt
    在循环中是如何更新的
  • 每当
    sqrt%1==0
    为false时,
    root
    会发生什么情况(它如何影响循环?)
要点:

  • 你真的需要
    root
    成为替身吗

缩进是怎么回事?因为您事先知道何时停止,所以使用for循环而不是do..while。虽然这与您的问题无关,但使用for和while循环比使用do-while循环更容易编码。它们使您能够更好地控制如何以更易于使用的格式进行迭代。
     1 1
     2 1
     3 2
     4 2
     5 2
     6 2
     7 3
     8 3
     9 3
     10 3
     ...
     1000 32