Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Упражнение: Последовательность Коллатца

Последовательность Коллатца определяется следующим образом для произвольного n1, большего нуля:

  • Если ni равно 1, то последовательность завершается на ni.
  • Если ni чётное, то ni+1 = ni / 2.
  • Если ni нечётное, то ni+1 = 3 * ni + 1.

Например, начиная с n1 = 3:

  • 3 нечётное, поэтому n2 = 3 * 3 + 1 = 10;
  • 10 чётное, поэтому n3 = 10 / 2 = 5;
  • 5 нечётное, поэтому n4 = 3 * 5 + 1 = 16;
  • 16 чётное, поэтому n5 = 16 / 2 = 8;
  • 8 чётное, поэтому n6 = 8 / 2 = 4;
  • 4 чётное, поэтому n7 = 4 / 2 = 2;
  • 2 чётное, поэтому n8 = 1; и
  • последовательность завершается.

Напишите функцию, которая вычисляет длину последовательности Коллатца для заданного начального n.

// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0

/// Определяет длину последовательности Коллатца, начинающейся с `n`.
fn collatz_length(mut n: i32) -> u32 {
  todo!("Реализуйте это")
}

fn main() {
    println!("Length: {}", collatz_length(11)); // должно быть 15
}