对于以下递归函数f, 调用f(4),其返回值为:
int f(int n) { if (n <= 0) return 1; return f(n-1)+(n++); }
帮忙算一下,本人算出来和答案不一致
我在VC6.0上执行了一下,答案是 11。
其实函数 f 等价于:
int f(int n) { if (n <= 0) return 1; return f(n-1)+n; }
因为 n++ 是“先使用后自增”,所以在 f 函数这里 n++ 的效果跟 n 一样。
于是返回值就是 :1+1+2+3+4 = 11。
其实函数 f 等价于:
int f(int n) { if (n <= 0) return 1; return f(n-1)+n; }
因为 n++ 是“先使用后自增”,所以在 f 函数这里 n++ 的效果跟 n 一样。
于是返回值就是 :1+1+2+3+4 = 11。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2021-01-09
你这个题后面是n++,所以是11,原题返回值不是n++,所以是10