使用Java Math平方根方法计算1到1,000的平方根。然后仅输出整数

时间:2016-06-17 15:14:05

标签: java math perfect-square

  

使用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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

要考虑的重点:

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

小点:

  • 你真的需要root成为双人吗?