Напишите программу, которая в последовательности натуральных чисел определяет
сумму двухзначных чисел, кратных 5. Программа получает на вход натуральные числа,
количество введённых чисел неизвестно, последовательность чисел заканчивается
числом 0 (0 - признак окончания ввода, не входит в последовательность).
Количество чисел
превышает 1000. Введённые числа
не превышают 30000.
Программа должна вывести одно число: сумму двухзначных чисел, кратных 5.
Пример работы программы:
не
Выходные данные
Входные данные
45
22
45
120
0
на пайтоне пожалуйста без типа строка
Ответы
Ответ:
var n,i,a,min: integer;
begin
readln(n);
min:=30001
for i:=1 to n do
begin
readln(a)
if (a mod 10 = 4) and (a < min)
then min:= a;
end;
writeln(min)
end.
Программа:
#! /usr/bin/env python3
#! encoding: utf-8
# © NaaMan
from math import log10 as lg
smm = 0
ans = int( input( '? ' ) )
while ans != 0 :
if 1 <= lg(ans) < 2 :
if ans % 5 == 0:
smm += ans
ans = int( input( '? ' ) )
print('Sum =', smm)
Объяснение:
Для определения двухзначных чисел из модуля math импортируется функция десятичного логарифма log10. Для краткости ей присваивается имя lg. Как известно, десятичный логарифм числа 10 равен единице, а числа 100 - двойке. Это и будем использовать в программе.
Вначале инициализируется переменная для хранения суммы smm, т.е в нее заносится 0.
Затем программа запрашивает у пользователя ввести очередное число до тех пор, пока он не введёт 0.
Затем программа производит две проверки:
1. Равен ли логарифм числа промежутку (1.0, 2.0)?
2. Кратно ли число пяти?
Если эти проверки положительны, то число суммируется к переменной smm.
В конце вычисленная сумма выводится на экран.
Результат работы программы приведён на скриншоте.