krahets/hello-algo

问题反馈:中文pdf版本1.1.0里,rust语言,第37页细胞分裂的递归实现问题

Closed this issue · 1 comments

rust版本,1.1.0版本里37页复杂度分析里,讲细胞分裂的例子,用递归的实现,rust的代码如下:
第 2 章 复杂度分析 hello‑algo.com 37
fn exp_recur(n: i32) -> i32 {
if n == 1 {
return 1;
}
exp_recur(n - 1) + exp_recur(n - 1) + 1 // 这里不应该有1, 应该把1去掉。 细胞分裂1分为2,2分为4, 4分为。有1的话,就变为1,3, 7 了。
}

这个函数统计的是“分裂总次数”而非“细胞数量”。例如,n = 2 代表进行了两轮分裂,包括:一分为二(1 次)、二分为四(2 次),此时分裂总次数为 1 + 2 = 3 。