【发布时间】:2020-10-29 14:58:09
【问题描述】:
我试图找出每个 Fibonacci(n) 需要多长时间(以纳秒为单位)。对于所有 n,我的代码中的时钟时间总是相同的。我想我犯了一个错误。我该如何解决?
这是我的一些输出:
0 used 3792 ns
1 used 3792 ns
1 used 3792 ns
2 used 3792 ns
...............
0 used 2455 ns
1 used 2455 ns
1 used 2455 ns
2 used 2455 ns
...............
0 used 2675 ns
1 used 2675 ns
1 used 2675 ns
2 used 2675 ns
class Fibonacci {
private static long startTime = System.nanoTime();
public static int fib(int n)
{
if (n <= 1)
return n;
return fib(n-1) + fib(n-2);
}
private static long endTime = System.nanoTime();
public static void main (String args[])
{
long time = (endTime - startTime);
for(int n = 0;n < 25; n++) {
System.out.println(fib(n) + " used " + time + " ns");
}
}
}
【问题讨论】:
标签: java for-loop recursion time clock