Предмет: Информатика, автор: difhdiufgnd8fy

Рассмотрим алгоритм, который принимает на вход положительное целое число n. Если n четно, алгоритм делит его на два, иначе алгоритм умножает его на три и добавляет единицу.
Например, для n=5 получается следующая последовательность: 5 → 16 → 8 → 4 → 2 → 1.
Ваша задача смоделировать выполнение этого алгоритма для заданного значения n.
Пример вывода на экран: 5 5 16 8 4 2 1
JAVA

Ответы

Автор ответа: makason512
0

public class Collatz {

   public static void main(String[] args) {

       int n = 5; // заданное целое число n

       while (n > 1) {

           System.out.print(n + " "); // выводим n на экран

           if (n % 2 == 0) { // если n четное

               n /= 2; // делим на 2

           } else { // иначе

               n = n * 3 + 1; // умножаем на 3 и добавляем 1

           }

       }

       System.out.println(n); // выводим последнее значение n на экран (должно быть 1)

   }

}

Автор ответа: egorshop228
0

Ответ:

Вот как может выглядеть решение этой задачи на Java:

public void algorithm(int n) {

// Печатаем текущее значение n

System.out.print(n + " ");

// Если n четно, то делим его на 2

if (n % 2 == 0) {

algorithm(n / 2); }

// Иначе умножаем на 3 и добавляем 1

else {

algorithm(n * 3 + 1);

}

}

Вызовем этот метод с начальным значением n=5:

algorithm(5);

Объяснение:

Вывод на экран будет следующим:

5 16 8 4 2 1

Похожие вопросы