Приветик умненьким мальчикам форума)) даю 100 баллов за каждый ответ ><
Задача 1.
Напишите программу, которая в последовательности целых чисел определяет их сумму и количество чётных чисел, кратных 5. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести два числа: сумму последовательности и количество чётных чисел, кратных 5.
Задача 2.
Напишите программу, которая по двум данным натуральным числам a и b, не превосходящим 30000, подсчитывает количество чётных натуральных чисел на отрезке [a, b] (включая концы отрезка). Программа получает на вход два натуральных числа a и b, при этом гарантируется, что 1 ≤ a ≤ b ≤ 30000. Проверять входные данные на корректность не нужно. Программа должна вывести одно число: количество чётных чисел на отрезке [a, b].
Задача 3.
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двузначных чисел или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести среднее арифметическое двузначных чисел или вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых
Answers & Comments
Ответ:
задача 1
Program n1;
var sum,a,k: integer;
begin
sum:=0;
k:=0;
readln(a);
while a<>0 do
begin
sum:=sum+a;
if (a mod 2=0) and (a mod 5=0) then k:=k+1;
readln(a);
end;
writeln(sum);
writeln(k);
end.
задача 2
var a,b,i,k:integer;
begin
readln(a);
readln(b);
k:=0;
if (a>b) or (b>30000) or (a<1) then writeln('данные введены некорректно') else begin
for i:=a to b do
if i mod a=0 then k:=k+1;
writeln(k);end;end.
задача 3
begin
var r:=ReadSeqIntegerWhile(t->t<>0).Where(t->t.Between(10,99))
.DefaultIfEmpty.Average;
(r>0 ? r.ToString : 'No').Println
end.
for i in range(1,1000+1):
if i%2==0 and i%5==0:
cnt += 1
print(cnt)