int x(int n){ cnt++; if (n <= 3){ return 1; } else{ return x(n - 2) + x(n - 4) + 1; } }
16
18
20
22
X(8);//一次 X(6)+X(4)+1;//两次 X(4)+X(2)+X(2)+X(0);//四次 X(2)+X(0)+X(2)+X(2)+X(0);//两次,因为小于三的已经不需要再计算了
综上所述,递归调用次数为9次,X(8)的值为8;所以最终的调用次数为18次,选B
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题