设有一个递归算法如下所示,计算 F(8)需要调用该递归函数的次数为( )。 int F(int n) { if(n<=3) return 1; else return F(n-2)+F(n-4)+1; }
时间: 2024-02-02 22:03:59 浏览: 185
计算 F(8) 需要调用该递归函数的次数为 7 次。调用栈如下所示:
F(8)
├── F(6)
│ ├── F(4)
│ │ ├── F(2)
│ │ │ └── return 1
│ │ └── F(0) // 因为 F(-1)、F(-2)、F(-3) 都为 0
│ │ └── return 1
│ └── return 2 // F(4) = F(2) + F(0) + 1 = 2
└── F(4)
├── F(2)
│ └── return 1
└── F(0)
└── return 1
因此,调用该递归函数的次数为 7。
阅读全文