Вводится 4-х значное число. Нужно разделить его на отдельные цифры и с их помощью записать наименьшее возможное, но тоже четырехзначное число. В задаче нельзя использовать циклы, строки и списки.
Формат ввода
Четырехзначное число.
Формат вывода
Минимальное число, записанное теми же цифрами.
учти что число может быть с 0
самый простой способ
код на python
Информатика 10 класс Алгоритмы и структуры данных работа с цифрами Новый
Для решения этой задачи без использования циклов, строк и списков, мы можем воспользоваться математическими операциями для извлечения и обработки каждой цифры из четырехзначного числа. Давайте разберем шаги решения:
a = number // 1000
b = (number // 100) % 10
c = (number // 10) % 10
d = number % 10
x, y, z, w
.min_number = x * 1000 + y * 100 + z * 10 + w
.Важный момент в задаче — это правильно обработать нули, чтобы минимальное число оставалось четырехзначным. Например, если среди цифр есть 0, он не должен быть первой цифрой. В таком случае, перемещаем 0 на следующую позицию, где он не будет ведущим.
Теперь, давайте посмотрим на пример кода:
def min_four_digit_number(number):
# Извлечение цифр
a = number // 1000
b = (number // 100) % 10
c = (number // 10) % 10
d = number % 10
# Сортировка цифр
if a > b: a, b = b, a
if a > c: a, c = c, a
if a > d: a, d = d, a
if b > c: b, c = c, b
if b > d: b, d = d, b
if c > d: c, d = d, c
# Сборка минимального числа
# Если первая цифра 0, то нужно поменять ее с ближайшей ненулевой
if a == 0:
if b != 0:
a, b = b, a
elif c != 0:
a, c = c, a
elif d != 0:
a, d = d, a
min_number = a * 1000 + b * 100 + c * 10 + d
return min_number
# Пример использования
number = 3021
print(min_four_digit_number(number)) # Вывод: 1023
Этот код извлекает цифры, сортирует их и собирает минимальное число, учитывая особенности, связанные с нулями.