如何更改算法以进一步显示递归调用的数量?
public class fibb {
static long fibonacci(long n){
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String[] args){
System.out.println(fibonacci(14));
}
}
解决方法:
您可以使用静态变量来保持递归调用的计数.
public class fibb {
public static int count;
static long fibonacci(long n){
count++;
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String[] args){
System.out.println(fibonacci(14));
System.out.println("Number of times fibonacci function called is :" +count);
}
}
标签:java,recursion
来源: https://codeday.me/bug/20190529/1178184.html