-1

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

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

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

输出打印平方根,但不断四舍五入每个数字。我只想在每个完美正方形中打印一个数字(例如 1 1、4 2、9 3 等)。我理解这个问题,但每次我运行程序时,我都会得到这个作为我的输出:

     1 1
     2 1
     3 2
     4 2
     5 2
     6 2
     7 3
     8 3
     9 3
     10 3
     ...
     1000 32
4

2 回答 2

2

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

于 2016-06-17T15:18:17.137 回答
1

由于这显然是一项任务,我宁愿给出一些提示而不是解决方案。

需要考虑的要点:

  • 想想如何sqrt在循环中更新。
  • 无论何时sqrt % 1 == 0为假,会发生什么root(以及它如何影响循环?)

小点:

  • 你真的需要root双标吗?
于 2016-06-17T15:35:29.173 回答