练习:考拉兹序列

考拉兹序列 的定义如下,其中任意 n1大于零:- 如果 _ni_ 为 1,则序列在 _n 处终止i_.

  • 如果 _ni_ 为偶数,则 _ni+1= ni/ 2_。

  • 如果 _ni_ 为奇数,则 _ni+1= 3 * ni

    • 1_。

例如,以 _n1_ = 3 开头:- 3 is odd, so _n2_ = 3 * 3 + 1 = 10;

  • 10 is even, so _n3_ = 10 / 2 = 5;
  • 5 is odd, so n4 = 3 * 5 + 1 = 16;
  • 16 is even, so n5 = 16 / 2 = 8;
  • 8 is even, so n6 = 8 / 2 = 4;
  • 4 is even, so n7 = 4 / 2 = 2;
  • 2 is even, so _n8_ = 1;并且
  • 序列终止。

编写一个函数,用于计算给定初始 n 的考拉兹序列的长度。

/// Determine the length of the collatz sequence beginning at `n`.
fn collatz_length(mut n: i32) -> u32 {
  todo!("Implement this")
}

fn main() {
  todo!("Implement this")
}