使用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
答案 0 :(得分:2)
您没有更新值sqrt。它总是只有1,因此sqrt%1总是为0。
答案 1 :(得分:1)
由于这显然是一项任务,我宁愿给出一些提示而不是解决方案。
要考虑的重点:
sqrt
。sqrt % 1 == 0
为假时,root
会发生什么(以及它如何影响循环?)小点:
root
成为双人吗?