java - 如何检查在Java中调用了多少次递归函数?

标签 java optimization recursion

假设一个递归函数,例如:

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/

相关文章:

java - Java 中带有键绑定(bind)的 keyReleased() 方法?

java - 我应该依靠 Android 来丢弃离屏绘制吗?

python - 为什么这个 C++ 代码只比 Python 快一点点?

c# - 编写包含子目录的目录列表<String>

java - Sqlite Db Android 导入/导出期间的文件名

java - 等待计时器/进程完成后再继续

python - python中的递归和return语句

python - 将迭代转化为递归

java - 如何从Java Server+MySql加载图片到Android客户端

MySQL 提高查询性能