c - 如何找到递归函数调用自身的次数?

标签 c recursion

考虑以下递归 C 函数。

 void get (int n) { 
    if (n<1) return; 
    get (n-1) ; 
    get (n-3) ; 
    printf ("%d", n) ; 
    }

如果在 main() 中调用 get(6) 函数,那么之前会调用 get() 函数多少次返回主0

最佳答案

要计算出您的函数被调用了多少次,请在每次进入该函数时增加一个静态计数器,并在调用后打印出该值。例如:

int counter;
void get (int n) { 
    ++counter; /* increment counter before first return */
    if (n<1) return; 
    get (n-1) ; 
    get (n-3) ; 
    printf ("%d", n) ; 
}

int main()
{
    counter = 0; /* reset counter before each use */
    get(6);
    printf("get() was called %d times\n", counter);
}

关于c - 如何找到递归函数调用自身的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470909/

相关文章:

recursion - Coq 无法计算由 Fix 定义的有根据的,但如果由 Program Fixpoint 定义则可以

java - 为什么 Java 在我的 return 语句之后跳转

javascript - 如何从 JSON 兼容的嵌套对象/数据结构递归生成类似标记的字符串?

python - 从此列表中递归地将所有文件和文件夹设置为 777

Javascript无限类别深度树

c++ - #include guard 不起作用 - 或者我不明白

c - 在 C 函数递归中传递无符号数组

python - 使用 Python 子进程命令调用 C 编译器

c - 如何将 void * 初始化为已知数据类型

c - 如何正确执行 strcmp?