Решение задачи №4197
Условие задачи №4197:
Дано натуральное число n, а затем последовательность натуральных чисел, ограниченная вводом нуля. Вывести на экран произведение двузначных элементов этой последовательности, которые делятся на n.Решение
Подробное решениеРешение:
Задача очень похожа на предыдущую, только в этот раз нам необходимо проверять делимость не на 2 (это было условие четности), а на n. К тому же, мы должны рассматривать только двузначные члены. Для выявления двузначного числа мы, однако, не будем считать его разрядность и сравнивать ее с двойкой, а воспользуемся тем, что любое двузначное число больше 9 и меньше 100.
В связи с этим условие поиска члена последовательности, отвечающего заданным критериям, будет выглядеть так: (a > 9) and (a < 100) and (a mod n = 0).
Напомним, что and – это конъюнкция, причем наше выражение содержит три конъюнктивных члена, так как операция применяется дважды. Оно истинно тогда и только тогда, когда истинны все три члена, и ложно во всех остальных случаях. При этом конъюнктивные члены стоят в скобках, так как логические операции в языке Pascal имеют больший приоритет, чем операции сравнения и арифметические операции. То есть, если опустить скобки, то Pascal, вычисляя значение слева направо, выполнит сначала операции 9 and a, 100 and a и т. д., что в корне неправильно.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | program ProductOfReqNums; var a, n, prod: word; begin readln(n); read(a); prod := 1; while a <> 0 do begin if (a > 9) and (a < 100) and (a mod n = 0) then prod := prod * a; read(a) end; if prod <> 1 then writeln(prod) else writeln('No such elements!')end. |