[英]How many times is this function executed in c++
下面是一段c++代碼,試圖理解並找出function被調用了多少次。
#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);
}
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)
,即1+(-1)+(-1)
或只是-1
。
一個簡單的檢查方法是添加std::cout << “something\n”;
在 function 定義的第一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.