Дано натуральное число n. Переставить его цифры так, чтобы образовалось максимальное число, записанное теми же цифрами. Как работает этот цикл? Почему цифры сдвигаются влево?
С виду это на Паскале программа, но тогда в ней цикл repeat until никак не работает, поскольку записан он неверно. Формат записи другой. В начале цикла пишется repeat, а until n>0 пишется в конце. Похоже, что этот заголовок кто-то списал с Бейсика.
По задумке тут число преобразуется в строку, а затем цифры в ней упорядочиваются по убыванию. Для этого используется обменная сортировка в ее разновидности, называемой также "пузырьковая сортировка". Конечно, классическая пузырьковая сортировка реализуется немного иначе, там внутренний цикл идет от конца к началу, а тут от начала к концу, что характерно для разновидности, называемой "метод камня". При сравнении пары значений происходит их обмен местами в случае, когда левый элемент меньше правого. Поэтому левые элементы с более меньшим значением переходят правее, а элементы с большим знаением - левее. Создается впечатление, что бОльшие цифры сдвигаются влево.
1 votes Thanks 0
Ejik17
Энивей, цикл на проверку натуральности не может не работать.
DonPedro80
Причем тут цикл на проверку натуральности? Пишешь всякую ерунду.
Ejik17
О господи, ты вообще подключаешь мозги, когда кому - то пишешь?
Answers & Comments
С виду это на Паскале программа, но тогда в ней цикл repeat until никак не работает, поскольку записан он неверно. Формат записи другой. В начале цикла пишется repeat, а until n>0 пишется в конце. Похоже, что этот заголовок кто-то списал с Бейсика.
По задумке тут число преобразуется в строку, а затем цифры в ней упорядочиваются по убыванию. Для этого используется обменная сортировка в ее разновидности, называемой также "пузырьковая сортировка". Конечно, классическая пузырьковая сортировка реализуется немного иначе, там внутренний цикл идет от конца к началу, а тут от начала к концу, что характерно для разновидности, называемой "метод камня". При сравнении пары значений происходит их обмен местами в случае, когда левый элемент меньше правого. Поэтому левые элементы с более меньшим значением переходят правее, а элементы с большим знаением - левее. Создается впечатление, что бОльшие цифры сдвигаются влево.