Цикл 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.

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

Инга1702 Инга1702    3   18.02.2020 22:31    1

Ответы
mamka18 mamka18  27.08.2020 20:58

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.


Цикл for.Python С экрана вводится натуральное число произвольной длины. Назовите его x. Определите,
Цикл for.Python С экрана вводится натуральное число произвольной длины. Назовите его x. Определите,
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика