Настоящий ученый должен уметь быстро перебирать в голове разные варианты решения . архимед для развития этого навыка использовал следующее : записывал трехназчное число и старался как можно быстрее получить из него все числа, какие можно, с перестановки его цифр. напишите программу, которая на основе трёхзначного числа находит все числа, образуемые путём перестановки цифр исходного числа. формат входных данных вводится целое число n (100≤n≤999). формат выходных данных требуется вывести искомые числа, каждое на новой строке. примечания при поиске чисел-перестановок может так случиться, что некоторые числа будут повторяться. например, из числа 344 можно получить 434 двумя способами — поменять местами первую и вторую цифры и поменять местами первую и третью цифры. в таких случаях допускается как выводить повторяющиеся числа несколько раз, так и вывести их лишь раз. кроме того, во втором примере стоит обратить внимание на то, что ведущий 0 в числе 44 не отображается. в программе-решении требуется выводить «44», а не «044». , программу надо сделать на питонне
Ответы на вопрос:
в питоне есть хороший модуль itertools. в нём есть комбинаторные функции - перестановки, размещения и куча других классных вещей. давай вызовем itertools.permutations, передадим туда твоё число как строку и длину перестановок - 3:
permutations('123', 3) --> 123 132 213 231 312 321
permutations('100', 3) --> 100 100 10 1 10 1
очередная перестановка, формально, представляется в виде списка. переведём в строку: ''.join(i)
уберём ведущие нули: .lstrip('0')
кодimport itertools
for i in itertools.permutations( 3):
print(''.join(i).lstrip('0'))
# ввод:
# 100
# вывод:
# 100
# 100
# 10
# 1
# 10
# 1
условие позволяет нам выводить повторяющиеся перестановки. если нас это не устраивает, мы можем добавить проверку уникальности через set:
import itertools
checker = set()
for i in itertools.permutations( 3):
s = ''.join(i).lstrip('0')
if not(s in checker):
print(s)
checker.add(s)
# ввод:
# 100
# вывод:
# 100
# 10
# 1
П̗͔͊͛̽̎͆ͥ̇͘е̳̺̺̝͍̻͔̔р̸̝͙̦̺̪̪ͥ̒ͪͫ̄е͈̮͖͑м͙̻̎ͩ̌е̴͕͍̘̖͋ͭ̉ͤ̅͌́с̣̻͘т̮̈́̋͐̆̐й̳̏ͩ̔͢т̡ь͈̥͍ ̹͙́ͬ̔̑̑̿̚в̻̩ͥп̗͉̱̝̱͒ͣ͒̊е̟̞͓̏̐ͨͣ̚͠ͅр̜͐ё̅҉̝͙д̭̯͇͇̬̳͗̎́.̲̲̀͑
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
dedovdima1414.02.2023 23:06
-
Daya9888888825.09.2021 10:50
-
Viktoriya2003040103.03.2021 23:26
-
Hava99111119.12.2022 05:28
-
крис90314.04.2020 14:30
-
amelkumjan23.06.2023 00:43
-
albina100205.06.2023 08:37
-
alinochkaderyu05.04.2021 06:44
-
AiDanttlll27.04.2023 15:34
-
StilesStilinsky25.06.2021 06:23
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.