假设一个递归函数,例如:
public static int factorial(int n){
if(n==0){
return 1;
} else return n*factorial(n-1);
}
我如何知道每个参数被调用了多少次并将它们存储在 map
中? (即:n=5 时 10 次,n=9 时 24 次等...)
编辑:
假设目标是从这样的方法调用它,并且它可以在程序中多次调用:
public Map<Integer, Integer> getTheNumberOfOccasionsItHasBeenCalled();
最佳答案
当你返回 1 时,我想你可以做
StackTraceElement[] sts=Thread.currentThread.getStackTrace()
并计算方法名称为阶乘的所有 StackTraceElement。
关于java - 如何检查在Java中调用了多少次递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210174/