首页 > 试题广场 >

考虑以下递归算法: int foo(int n) { if

[单选题]
考虑以下递归算法:
int foo(int n) {
    if (n <= 0)
        return 0;
    else
        return 2 * foo(n - 1) + 1;
}
计算 foo(foo(3)) 时需要调用 foo 函数的次数是()
  • 3 次
  • 4 次
  • 10次
  • 12 次
关键分析步骤: 1. 计算  foo(3) : - 调用链: foo(3) → foo(2) → foo(1) → foo(0) ,共 4次调用。 2. 计算  foo(7) : - 调用链: foo(7) → foo(6) → foo(5) → foo(4) → foo(3) → foo(2) → foo(1) → foo(0) ,共 8次调用。 3. 总调用次数: -  foo(3)  的4次 +  foo(7)  的8次 = 12次。
发表于 2025-03-25 14:32:16 回复(0)