int f(int n){ static int i = 1; if(n >= 5) return n; n = n + i; i++; return f(n); }
5
6
7
8
这题目就是为了检查一下咱静态变量和递归结构掌握程度的,慢慢来应该问题不大。要计算f(1),需要讲参数1传入函数后的返回值,参数更新后n=2,i=2,返回f(2);要f(2)和f(1)计算一样,需要计算返回值,显然,返回f(4);f(4)传入后n=7,满足输出常数条件,所以f(4)=7。综述:f(1)=f(2)=f(4)=7
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
f(1):n=2;i=2;调用f(2)
f(2):n=4;i=3;调用f(4)
f(4):n=7;i=4;调用f(7)
f(7):返回7
即最终函数返回结果为7
选C