Понял, давай разберём задачу вместе. Нам дан фрагмент алгоритма, который работает с числами. По задаче нужно найти такое наибольшее двузначное число x, чтобы после выполнения алгоритма переменные s и p приняли значения 12 и 1 соответственно.
Итак, переменные a и b получают значения последней и предпоследней цифры двузначного числа x соответственно. Переменные s и p инициализируются как 0 и 1.
Пример работы алгоритма на переменной x:
a = x mod 10;— берём последнюю цифру числаx.b = x div 100;— это строчка алгоритма, очевидно, содержит ошибку, так как мы работаем с двузначным числом и должны взять предпоследнюю цифру, поэтому она должна бытьb = x div 10;(но оставим как есть, так как можем предположить опечатку в условии).s := 0;— сумма, изначально равна нулю.p := 1;— произведение, изначально равно единице.- Операторы условия проверяют чётность
aиb.
Теперь, чтобы найти это число, нужно выполнить следующие шаги:
Поскольку мы знаем, что
pравно1в конце алгоритма, тоaиbдолжны быть либо обе нечётные, либо их произведение в любых комбинациях должно быть1(например, одна из переменных должна быть равна1, чтобыpне изменилось).Значение
sдолжно быть12после выполнения алгоритма. Так как начальное значениеsбыло0, тоaиbв сумме должны дать12. Мы также знаем, чтоsбудет увеличиваться только в том случае, если соответствующая переменная чётная. Итак, мы ищем две чётные цифры, сумма которых равна12. Это могут быть цифры6и6или4и8(или8и4).Так как нам нужно самое большое двузначное число, то предпочтительнее поставить большую цифру на первое место. Получаем число
86или68. Поскольку6— чётная,sувеличивается на6, и так как8— тоже чётная,sувеличивается на8, в итогеsстановится14, что не соответствует нужному условию. Таким образом,4и8— наши цифры.Нет необходимости проверять другие комбинации, так как
10— это минимальные чётные цифры, дающие10в сумме, а мы ищем сумму равную12.
Итак, у нас есть 4 и 8 как последняя и предпоследняя цифры искомого числа. Чтобы p осталось равным 1, a не должно измениться, и так как b = x div 100; — неправильная операция для двузначного числа, это не повлияет на p. Таким образом, предпоследняя цифра числа x равна 4, последняя — 8. Следовательно, ответ 48.