Гипотеза Коллатца о циклах while и do-while

1 мин

Статья написана в 2020 году. Команды и версии программ могли устареть — проверяйте по документации.

Задача:

Дано натуральное число n. Сгенерируйте последовательность целых чисел, описанную в гипотезе Коллатца:

Если n-четное число, разделите его пополам, если нечетное, умножьте на 3 и добавьте 1. Повторяйте эту операцию до тех пор, пока мы не получим число 1 в результате.

Например, если число n = 17, то последовательность выглядит следующим образом:

no-highlight
17 52 26 13 40 20 10 5 16 8 4 2 1

Такая последовательность остановится на числе 1 для любого первичного натурального числа n.

**Формат вывода:**последовательность целых чисел в одной строке, разделенных пробелами.

Пример ввода:

17

Пример вывода

17 52 26 13 40 20 10 5 16 8 4 2 1
import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int a = scanner.nextInt();
        System.out.print(a + " ");

        while (a != 1) {
            if (a % 2 == 0) {
                a = a / 2;
            } else {
                a = 3 * a + 1;
            }
            System.out.print(a + " ");
        }
    }
}
Статья помогла?

Нашли ошибку или устаревшую команду? Выделите текст и нажмите Ctrl+Enter.