Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в последовательность не входит, служит признаком ее окончания. Найти произведение последних цифр всех чисел последовательности, больших числа 13. Если таких чисел нет, то выведите 0.
Входные данные
На вход подаются числа последовательности (все числа не больше 100 по модулю). Ноль - признак окончания ввода.
Выходные данные
Выведите ответ на задачу (гарантируется, что ответ всегда меньше, чем 2в 64 степени).
list;[;break запрещено
напишите программу
Python
Python Обработка данных в цикле. 7 класс
Элементарно (каждое число вводится с новой строки):
a, p, yes = 1, 1, 0
while a:
a = int(input('»»» '))
if a>13: yes += 1; p *= a % 10
print(p if yes else 0)
Самый очевидный способ - через math.prod :
Если math.prod по каким-то причинам не устраивает, то через functools.reduce:
Если преподаватель вообще жёстко настроен против стандартных функций свёртки, то можно реализовать закат Солнца вручную через итератор с побочным эффектом:
from math import prod
ns = (int(s) for s in iter(input, '0'))
nf = (n % 10 for n in ns if n > 13)
first = next(nf, None)
print(first * prod(nf) if first != None else 0)
Если math.prod по каким-то причинам не устраивает, то через functools.reduce:
from functools import reduce
ns = (int(s) for s in iter(input, '0'))
nf = (n % 10 for n in ns if n > 13)
first = next(nf, None)
print((first % 10) * reduce(int.__mul__, nf, 1) if first != None else 0)
Если преподаватель вообще жёстко настроен против стандартных функций свёртки, то можно реализовать закат Солнца вручную через итератор с побочным эффектом:
ns = (int(s) for s in iter(input, '0'))
p = 1
*_, last = (p := p * (n % 10) for n in ns if n > 13)
print(last if last != None else 0)
Алексей Ячменев
"Если таких чисел нет, то выведите 0"
Проблема аналогична предыдущей . И решение аналогично.
Вот только из-за нестандартного условия (произведение нулевого числа сомножителей обычно полагается равным 1) код слегка усложнился.
Вот только из-за нестандартного условия (произведение нулевого числа сомножителей обычно полагается равным 1) код слегка усложнился.
prod = None
while (val := int(input())) != 0:
if val > 13:
if prod is None: prod = 1
prod *= val % 10;
if prod is None: prod = 0
print(prod)
lastNumProduct = 1
while True:
print("Введите элемент")
x = int(input())
if x == 0:
break
if x>13:
lastNumProduct *= x%10
if lastNumProduct == 1:
print(0)
else:
print(lastNumProduct)
while True:
print("Введите элемент")
x = int(input())
if x == 0:
break
if x>13:
lastNumProduct *= x%10
if lastNumProduct == 1:
print(0)
else:
print(lastNumProduct)
Anton Baluk
break, break, как это мило, break, break, без перерыва.
Читать условие задачи перед тем, как ваять говнокод? Не, не слышал.
Читать условие задачи перед тем, как ваять говнокод? Не, не слышал.
product = 1 # инициализируем переменную для произведения
while True: # бесконечный цикл
num = int(input()) # считываем очередное число
if num == 0: # если введен ноль, значит последовательность закончилась
break # прерываем цикл
if num > 13: # если число больше 13, умножаем его последнюю цифру на произведение
last_digit = num % 10 # находим последнюю цифру числа
product *= last_digit # умножаем ее на произведение
if product == 1: # если ни одно число не удовлетворяло условию, выводим 0
print(0)
else:
print(product) # выводим произведение
while True: # бесконечный цикл
num = int(input()) # считываем очередное число
if num == 0: # если введен ноль, значит последовательность закончилась
break # прерываем цикл
if num > 13: # если число больше 13, умножаем его последнюю цифру на произведение
last_digit = num % 10 # находим последнюю цифру числа
product *= last_digit # умножаем ее на произведение
if product == 1: # если ни одно число не удовлетворяло условию, выводим 0
print(0)
else:
print(product) # выводим произведение
A.g. .............
спасибо
Anton Baluk
Опять нейросеть жидко обделалась. Нельзя с брейком-то.
Похожие вопросы
- Python. Объясните дурачку простейший цикл (или как он называется?)
- Програмирование 7 класс
- 1,7^2 = 2.8899999999999997 ? Или умножение в Python
- Что такое переменные и типы данных в языке python
- Курс под названием Анализ данных на Python больше держит акцент на Big Data-у, или нет ? В чем разница между Big Data ..
- Информатика, 8 класс, Python
- Как написать цикл на языке программирования Python
- Окончил курсы на степике по Python что делать дальше?
- Задача в Python? Помогите решить, не получается! Решить нужно без функций и методов. Только циклы и условные операторы.
- Python программирование. Помогите написать программу.