Во-первых, определить проблему
0-9 каждый данный номер. Вы можете расположить эти цифры в любом порядке, но должны быть в полной мере. Цель состоит в том, чтобы полученное число как можно меньше (не обращать внимание на первую 0).
Например: Учитывая два 0, 1 два, три 5, в 8, мы получим минимальное число 10015558. Минимальное число теперь присваивается номер, пожалуйста, напишите вывод программы может состоять из.
Входные форматы:
Входные данные 10 дается неотрицательное целое число в строке, мы имеем последовательность представляет собой число 0, число номер 1, номер 9 ....... Разделенные пространства между целым числом. Общее число из 10 цифр не более чем 50, и имеет, по меньшей мере, один ненулевой цифры.
Выходные форматы:
Наименьшее число в строке может быть его выход.
Пример ввода:
2 2 0 0 0 3 0 0 1 0
Пример вывода:
10015558
Во-вторых, решение проблем
= В НУМС [Int (BI) для BI в (ВХОД ()) Разделить STR (. " " )]
# Во- первых, найти наименьшее ненулевое число, наиболее значимые биты
мин = 0
для I в диапазоне (1, 10. ):
ЕСЛИ в НУМС ! [I] = 0:
мин = I
в НУМСЕ [I] , - = 1.
BREAK
числа = мин
# оставшееся количество малых и большой сплайсинг
DEF concat_by_mult (количество, то НУМС):
для I в диапазоне (10 ):
IF в НУМСЕ [ I] =! 0:
дляJ в диапазоне (НУМС [я]):
число = число * 10 + я
вернуть номер
четкости concat_char (номер, Nums):
номер = Str (число)
для I в диапазоне (10 ):
если НУМС [я]! = 0:
для J в диапазоне (НУМС [I]):
номер = номер + ул (я)
возвращение номер
печати (concat_char (число, НУМС))