Задача 20
Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 5, а потом 7.
1. Для начала разберемся, что делает эта программа:
- в цикле рассматривается значение x>0; каждый шаг, пока x>0, происходит увеличение переменной M на единицу. Переменная M - это счетчик, соответственно, его значение будет соответствовать количеству шагов цикла;
- в цикле присутствует условие if x mod 2 <> 0 (условие нечетности x); в вслучае выполнеия условия, каждый шаг, происходит увеличение переменной L на единицу. Переменная L - это счетчик, соответственно, его значение будет соответствовать количеству нечетных x;
- вычиляется следующее значение x делением целочисленно на 2: x := x div 2;
- по завершении работы цикла, выводятся две переменные, сначала L, потом M. Т. к., согласно условию, алгоритм напечатал сначала 5, потом 7, получаем, что L = 5, а M = 7.
2. С Работой программы мы разобрались, теперь давайте разберемся что значат для нас эти переменные: L = 5 и M = 7:
- переменная L - это счетчик, его значение соответствует количеству нечетных x, значит в результате выполнения действия x := x div 2 получилось 5 нечетных значений;
- переменная M - это счетчик, его значение соответствовует количеству шагов цикла, т.е. цыкл выполнился 7 раз, 7 раз произошло цедочисленное деление x на 2;
- важно отметить, что из 7 чисел - 5 - нечетных, а 2 четных.
3. Теперь необходимо разобраться со значением x. Будем решать от обратного:
- т.к. цикл завершил работу, значит x = 0 и последним шагом было x = 1 div 2 = 0, на предпоследнем шаге x = 1. Первое нечетное значение;
- поскольку нам необходимо найти наименьшее значение х, увеличим значение х = 1 в два раза, получим первое четное значение х = 2, увеличим его в 2 раза - получим второе четное значение х = 4;
- мы уже нашли 2 четных значения и одно нечетное, осталовь найти 4 нечетных, для этого, последнее значение х = 4 будем увеличивать в 2 раза и прибавлять единицу. Таким образом получим: 9, 19, 39. 79.
Ответ: 79