Данные задачи относятся к заданиям ЕГЭ по информатике, суть которых - анализ кода программы, содержащей циклы и ветвления. От решающего задачу требуется проанализировать ход выполнения программы, для этого необходимо знать особенности выполнения циклов, а так же суть работы операторов div и mod.
Оператор div выполняет целочисленное деление (без остатка), например, значением выражения 56 div 10 будет 5. Другой пример: 5 div 10 даёт 0, поскольку делимое меньше делителя.
Оператор mod выдаёт остаток от целочисленного деления, например, значением выражения 56 mod 10 будет 6. Другой пример: 5 mod 10 равно 5.
Теперь рассмотрим первый из предложенных алгоритмов.
Итак, нужно, чтобы на выходе мы в качестве значения a получили бы 13, а значения b - 5 при наименьшем возможном x. В таком случае нам известно, что число x - двузначное, одна из его цифр - 5, а сумма цифр числа равняется 13. Очевидно, что данному условию удовлетворяет число 85: вторая цифра числа - это 8, а 85 больше 58.
Ответ: 58.
Теперь рассмотрим второй код.
Что это значит? Допустим, было введено число 1234. На первом шаге цикла получим:
b=0+(1234 mod 100)=34. То есть b - это число - последние две цифры числа x.
На втором шаге выполнения цикла число x будет равно 12 (1234 div 100=12). b=45+(12 mod 100)=34+12=46. То есть на втором шаге выполнения цикла мы к предыдущему значению прибавляем число - первые две цифры числа x, и полученная сумма выводится на печать.
Итак, мы знаем, что x - четырёхзначное число, сумма двух чисел - первых двух и последних двух цифр которого должна равняться 26). Надо разбить число 26 на подходящие слагаемые так, чтобы одно из них было максимально возможным. Получаем: 26=26+0
Наибольшим числом будет 2600.
Ответ: 2600
Подборка ссылок по решению таких задач:
Множество разобранных примеров похожих задач можно найти тут и тут.
Видеоурок с разбором типовой задачи
Презентация с типовыми алгоритмами
В решении используется элементарная математика и понимание кода программы. В разделе "Var" задаются все переменные, которые используются в коде задачи. Так "integer" - это целые числа, "real" - действительные числа. Конструкция "Begin....end." это "тело" программы. Оператор "Div" - целая часть от деления, "mod" - остаток от деления. Так в первой задачи мы сначала присваиваем а и b значение 0 и 10 соответственно. Потом если введенное значение Х>0 значение а увеличивается на целую часть деления X на 10. Если значение целой части меньше чем значение b, то значению b присваивается значение целой части. В конце цикла значению x присваивается значение остатка от деления Х на 10. После чего снова запускается цикл от сравнения X c нулём. Как только значение X станет меньше или равен нулю программа завершится и выведет полученные значение a и b. Чтобы значение b стало равно 5, необходимо, чтобы в последний заход цикла целая часть от деления была равна 5. Ну а чтобы а=13, необходимо, чтобы в первый прогон цикла целая часть была, такова, чтобы при последующем добавлении значения "5" получилось 13, то есть в первый раз целая часть равна 8. Таким образом, минимальное значение X=85.
Добавить комментарий