
Цикл 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. Замечание: используйте операции целочисленной арифметики (НЕ строки). '''

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

Ответ:
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.





Пример кода на Python для решения данной задачи:
pythonx = int(input("Введите натуральное число: "))
k3 = 0
k5 = 0
# Подсчитываем количество цифр 3 и 5
while x > 0:
digit = x % 10
if digit == 3:
k3 += 1
elif digit == 5:
k5 += 1
x //= 10
# Выводим результаты
if k3 == 0 and k5 == 0:
print("В введенном числе нет цифр 3 и 5.")
else:
print(f"Цифра 3 встречается {k3} раз, цифра 5 встречается {k5} раз.")
# Строим число y
y = int("5" * k5 + "3" * k3)
print(f"Число y: {y}")
# Выводим число y1
y1 = y - 7
print(f"Число y1: {y1}")
Этот код сначала подсчитывает количество цифр 3 и 5 во введенном числе, затем выводит соответствующие сообщения и строит число y. В конце выводится число y1, которое получается вычитанием 7 из числа y.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili