Формулировка. Дано натуральное число 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. program ProductOfReqNums; 2. 3. var 4. a, n, prod: word; 5. 6. begin 7. readln(n); 8. read(a); 9. prod := 1; 10. while a <> 0 do begin 11. if (a > 0) and (a < 100) and (a mod n = 0) then prod := prod * a; 12. read(a) 13. end; 14. if prod <> 1 then writeln(prod) else writeln(' No such elements!') 15. end. |
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.