Автомат получает на вход нечётное число X. По этому числу строится трёхзначное число Y по следующим правилам. 1. Первая цифра числа Y (разряд сотен) – остаток от деления X на 4. 2. Вторая цифра числа Y (разряд десятков) – остаток от деления X на 3. 3. Третья цифра числа Y (разряд единиц) – остаток от деления X на 2. Пример. Исходное число: 63179. Остаток от деления на 4 равен 3; остаток от деления на 3 равен 2; остаток от деления на 2 равен 1. Результат работы автомата: 321. Укажите наименьшее двузначное число, при обработке которого автомат выдаёт результат 101.

Вопрос школьника по предмету Информатика

Автомат получает на вход нечётное число X. По этому числу строится трёхзначное число Y по следующим правилам.
1. Первая цифра числа Y (разряд сотен) – остаток от деления X на 4.
2. Вторая цифра числа Y (разряд десятков) – остаток от деления X на 3.
3. Третья цифра числа Y (разряд единиц) – остаток от деления X на 2. Пример. Исходное число: 63179. Остаток от деления на 4 равен 3; остаток от деления на 3 равен 2; остаток от деления на 2 равен 1. Результат работы автомата: 321.

Укажите наименьшее двузначное число, при обработке которого автомат выдаёт результат 101.

Ответ учителя по предмету Информатика

1) Первый способ.

Первая цифра числа Y = X mod 4:

Ряд первых 10 чисел которые подходят под правило X mod 4 = 1:

1, 5, 9, 13, 17, 21, 25, 29, 33, 37 (Δ=4)

Вторая цифра числа Y = X mod 3:

Из предыдущего пункта, двухзначные числа, которые попадают под правило X mod 3 = 0:

21, 33

Третья цифра числа Y = X mod 2:

Поскольку X – число нечетное, то оно обязательно будет иметь остаток 1.

Наименьшее число из выбранных – это 21.

Ответ: 21

2) Второй способ.

Воспользуемся простеньким уравнением:

(X % 4 * 100) + (X % 3 * 10) + (X % 2)=101

И проверим его в промежутке от 11 до 99.

Если число из промежутка подходит по условию и нечетное, то это наш ответ.

Пример программы приведен ниже.

// PascalABC.NET  

// Версия 3.4.2, сборка 1956 (01/30/19)

begin

 for var x := 10 to 99 do

   if ((X mod 4 * 100) + (X mod 3 * 10) + (X mod 2) = 101) and (X.IsOdd) then

   begin

     Println(x);

     break;

   end;

end.

Результат: 21

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей