如何查找递归函数调用自身的次数?

Ris*_*shi -2 c recursion

考虑以下递归C函数.

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

如果get(6)正在调用函数,main()那么get()在返回main之前调用函数的次数是多少次0

Gab*_*abe 5

要确定调用函数的次数,请在每次输入函数时递增静态计数器,并在调用后打印出值.例如:

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);
}
Run Code Online (Sandbox Code Playgroud)

  • @JonathonReinhart:你是完全正确的,但我想制作代码以便可以重复使用; 也就是说,您可以在循环中调用它或复制/粘贴它以查看使用不同的输入参数调用函数的次数. (2认同)