首页 > 解决方案 > 这个函数在c++中执行了多少次

问题描述

这是一段 c++ 代码,试图了解并找出该函数被调用了多少次。

#include <iostream>

int func(int j){
    if (j <= 0) return -1; 
    if (j == 1) return 1;  
    return func(j/2) + func(j-4); 
}

int main(){
    func(4);
}

标签: c++

解决方案


func(4)将被评估为 func(2)+func(0)func(2)反过来将被评估为func(1)+func(-2)。总共,您将调用func(4), func(2), func(1), func(-2), func(0)( 5次)。结果表达式将为func(1)+func(-2)+func(0),即 is1+(-1)+(-1)或 just -1

一种简单的检查方法是std::cout << “something\n”;在函数定义的第一行添加。


推荐阅读