Есть ответ 👍

Настоящий ученый должен уметь быстро перебирать в голове разные варианты решения . архимед для развития этого навыка использовал следующее : записывал трехназчное число и старался как можно быстрее получить из него все числа, какие можно, с перестановки его цифр. напишите программу, которая на основе трёхзначного числа находит все числа, образуемые путём перестановки цифр исходного числа. формат входных данных вводится целое число n (100≤n≤999). формат выходных данных требуется вывести искомые числа, каждое на новой строке. примечания при поиске чисел-перестановок может так случиться, что некоторые числа будут повторяться. например, из числа 344 можно получить 434 двумя способами — поменять местами первую и вторую цифры и поменять местами первую и третью цифры. в таких случаях допускается как выводить повторяющиеся числа несколько раз, так и вывести их лишь раз. кроме того, во втором примере стоит обратить внимание на то, что ведущий 0 в числе 44 не отображается. в программе-решении требуется выводить «44», а не «044». , программу надо сделать на питонне

229
404
Посмотреть ответы 2

Ответы на вопрос:


Решение

в питоне есть хороший модуль 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

Zarina2206
4,8(56 оценок)

П̗͔͊͛̽̎͆ͥ̇͘е̳̺̺̝͍̻͔̔р̸̝͙̦̺̪̪ͥ̒ͪͫ̄е͈̮͖͑м͙̻̎ͩ̌е̴͕͍̘̖͋ͭ̉ͤ̅͌́с̣̻͘т̮̈́̋͐̆̐й̳̏ͩ̔͢т̡ь͈̥͍ ̹͙́ͬ̔̑̑̿̚в̻̩ͥп̗͉̱̝̱͒ͣ͒̊е̟̞͓̏̐ͨͣ̚͠ͅр̜͐ё̅҉̝͙д̭̯͇͇̬̳͗̎́.̲̲̀͑

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS