Exercício: Sequência de Collatz

A Sequência de Collatz é definida da seguinte forma, para um n arbitrário1maior que zero:- Se _ni_ é 1, então a sequência termina em _ni_.

  • Se _ni_ é par, então _ni+1= ni/ 2_.

  • Se _ni_ é ímpar, então _ni+1= 3 * ni

    • 1_.

Por exemplo, começando com _n1_ = 3:- 3 é ímpar, então _n2_ = 3 * 3 + 1 = 10;

  • 10 é par, então _n3_ = 10 / 2 = 5;
  • 5 é ímpar, então _n4_ = 3 * 5 + 1 = 16;
  • 16 é par, então _n5_ = 16 / 2 = 8;
  • 8 é par, então _n6_ = 8 / 2 = 4;
  • 4 é par, então _n7_ = 4 / 2 = 2;
  • 2 é par, então _n8_ = 1; e
  • a sequência termina.

Escreva uma função para calcular o comprimento da sequência de Collatz para um dado n inicial.

/// Determine o comprimento da sequência de Collatz começando em `n`.
fn collatz_length(mut n: i32) -> u32 {
  todo!("Implemente isso")
}

fn main() {
  todo!("Implemente isso")
}