Ham*_*eni 5 java recursion static syntax-error
我是一个Java新手,我正试图通过递归函数部署斐波那契线,然后计算运行时间.这是我设法编写的代码:
class nanoTime{
int fib(int n){
if(n==0) return 0;
if(n==1) return 1;
return this.fib(n-1)+this.fib(n-2);
}
public static void main(String[] args){
double beginTime,endTime,runTime;
int n=10;
beginTime = System.nanoTime();
n = this.fib(n);
endTime = System.nanoTime();
runTime = endTime-beginTime;
System.out.println("Run Time:" + runTime);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我试图将其变为字节码时,我收到以下错误:
nanoTime.java:11: non-static variable this cannot be referenced from a static context
Run Code Online (Sandbox Code Playgroud)
我想知道这是什么问题?!
Mou*_*ous 12
更改
n = this.fib(n);
Run Code Online (Sandbox Code Playgroud)
至
n = fib(n);
Run Code Online (Sandbox Code Playgroud)
并使方法fib静态.
或者,改变
n = this.fib(n);
Run Code Online (Sandbox Code Playgroud)
至
n = new nanoTime().fib(n);
Run Code Online (Sandbox Code Playgroud)