这比较了使用Math.sqrt和牛顿方法查找平方根所需的时间。我应该添加方法,允许客户端停止并重新启动秒表,但我不知道如何做到这一点。不幸的是,搜索其他问题并没有带来太多运气。因为这是一个课程,我不希望给我一个完全的答案,但是一些建议,或者关于如何实现我的目标的教程的链接将是很好的。谢谢你的帮助。
public class Stopwatch
{
private final long start;
public Stopwatch()
{ start = System.currentTimeMillis(); }
public double elapsedTime()
{
long now = System.currentTimeMillis();
return (now - start) / 1000.0;
}
public static void main(String[] args)
{
int N = Integer.parseInt(args[0]);
double totalMath = 0.0;
Stopwatch swMath = new Stopwatch();
for (int i = 0; i < N; i++)
totalMath += Math.sqrt(i);
double timeMath = swMath.elapsedTime();
double totalNewton = 0.0;
Stopwatch swNewton = new Stopwatch();
for (int i = 0; i < N; i++)
totalNewton += Newton.sqrt(i);
double timeNewton = swNewton.elapsedTime();
System.out.println(totalNewton/totalMath);
System.out.println(timeNewton/timeMath);
}
}
答案 0 :(得分:0)
创建另一个名为timeElapsedUntilLastStop
的属性为long的属性。
创建一个名为stop的方法,它完全按照elapsedTime执行,但不是返回添加到当前值timeElapsedUntilLastStop
。
restart()
方法应初始化应该足够的start变量。
答案 1 :(得分:0)
很高兴你诚实地说这是为了一堂课而且你不想给你答案。这是学习的良好开端:)
以下是我将如何处理任务:
首先,我只是定义缺少的方法。然后,我开始编写(作为内联注释)方法应该做什么。重置秒表意味着什么,停止它意味着什么?你可以画出“现实生活”秒表的相似之处。这应该让您开始思考,一旦您定义了规则,就应该可以将其转换为代码。
也许这比你想象的更抽象,但我相信你会以正确的态度到达那里,就像你似乎有的那样!祝你好运!