Предмет: Информатика, автор: Onepie117

Цикл for.Python
С экрана вводится натуральное число произвольной длины.
Назовите его x.
Определите, какая цифра встречается в нем чаще, 3 или 5.
Назовите счетчики цифр 3 и 5 именами k3 и k5 соответственно.
Выведите соответствующее сообщение.
Выведите также значения k3 и k5.
Если во введённом числе нет ни одной из цифр 3 и 5, то выведите
об этом соответствующее сообщение. В противном случае постройте число,
в котором сначала идут цифры 5, записанные k5 раз,
а потом цифры 3, записанные k3 раза.
Назовите его y. Выведите это число на экран.
Также выведите число y1, которое на 7 меньше полученного.
Например, если было введено x = 59643339938765231, то должно
быть выведено число y = 5533333 и число y1 = 5533326.

Замечание: используйте операции целочисленной арифметики (НЕ строки).
'''

Ответы

Автор ответа: KnowsUser1
0

Ответ:

Python 3.7.2

x = int(input(), base = 10)

k3 = k5 = 0

for digit in map(int, list(str(x))):

   if digit is 3: k3 += 1

   elif digit is 5: k5 += 1  

#Что бы не городить огромные условные конструкции,

#Мы просто "выключим" программу при кривом вводе

if k3 == k5 == 0: raise RuntimeError('bad input')

#Если введённое число не имеет нужных цифр - вылетаем с ошибкой Runtime error и сообщаем об этом

print(f'цифр 5 больше, счётчики: k3: {k3}, k5: {k5}' if (k5 > k3) else f'цифр 3 больше, счётчики: k3: {k3}, k5: {k5}')

y = int('5'*k5 + '3'*k3)

y1 = y - 7

#Это можно засунуть в print(), но раз уж надо...

print(x, y, y1, end = '\n')

Объяснение:

На скриншотах представлены исходный код программы в рабочем виде, без поломанных отступов, а так же результат работы для предложенных входных данных. Если сильно надо программу просто скопировать, сдать и забыть, а отсюда не копируется - попросите в комментариях, я залью это на какой нибудь сервис типа pastebin.

Приложения:

Onepie117: Спасибо, нужно через цикл while забыл указать.
KnowsUser1: "Цикл for.Python" В заголовке вопроса. Кхм -_-
Onepie117: Я ошибся
Похожие вопросы