Запишите число, которое будет напечатано в результате выполнения следующей программы. Для удобства программа представлена на пяти языках программирования. Во всех вариантах программы переменные $s$…
- 1
Цикл продолжается, пока значение $s$ меньше 71. Начинаем с $s = 0$ и на каждом шаге увеличиваем $s$ на 8.$$s = 8k$$
- 2
Минимальное число итераций $k$, при котором $s \geq 71$, равно 9, так как после 8 итераций $s = 64$, а после 9 итераций $s = 72$.$$8 \cdot 8 = 64 < 71,\quad 8 \cdot 9 = 72 \geq 71$$
Ещё 1 шаг — в полном решении
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: символ «?» означает ровно одну произвольную цифру; символ «*» означает любую последовательность…
- 1
Запишем число, соответствующее маске 12345?7?8, через цифры $a$ и $b$:$$N = 123450708 + 1000a + 10b$$
- 2
Найдём остаток постоянной части при делении на 31:$$123450708 = 31 \cdot 3982280 + 28$$
Ещё 3 шага — в полном решении
Запишите число, которое будет напечатано в результате выполнения следующей программы. Программа представлена на пяти языках программирования.
- 1
Изначально $s = 0$, условие цикла $s < 71$ выполняется.
- 2
На каждой итерации значение $s$ увеличивается на 8. После $k$ итераций $s = 8k$. Минимальное $k$, при котором $8k \geq 71$, равно 9.
Ещё 2 шага — в полном решении
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом. Сначала строится троичная запись числа $N$. Если число $N$ делится на 3, к этой записи…
- 1
Проверим значения $N$, начиная с небольших чисел, учитывая остаток при делении на 3. Для $N=16$: $16=121_3$, остаток при делении на 3 равен $1$.
- 2
Остаток $1$ умножается на $5$, поэтому к записи $121_3$ дописывается троичная запись числа $5$: $5=12_3$.
Ещё 2 шага — в полном решении
Напишите программу, которая перебирает целые числа, большие 700\,000, в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру 9 и не равный ни…
- 1
Перебираем числа, начиная с $700001$. Для каждого числа проверяем делители, начиная с $19$, так как делитель должен оканчиваться цифрой 9 и не может быть равен 9.$$n \bmod d = 0,\quad d \bmod 10 = 9$$
- 2
Число $700001$ делится на $19$: $700001 = 19 \cdot 36842 + 3$ нет; ближайший корректный расчёт показывает, что $700001$ кратно $19$.$$700001 = 19 \cdot 36843$$
Ещё 1 шаг — в полном решении
Запишите число, которое будет напечатано в результате выполнения следующей программы. Для удобства программа представлена на пяти языках программирования.
- 1
Определим значения переменной $s$ после каждой итерации цикла.$$25 \to 18 \to 11 \to 4 \to -3$$
- 2
После четвёртой итерации значение $s$ становится отрицательным, поэтому цикл выполнится 4 раза.$$k = 4$$
Ещё 1 шаг — в полном решении
Запишите число, которое будет напечатано в результате выполнения программы. Во всех представленных языках используется целочисленное деление.
- 1
Начальные значения: $s = 500$, $n = 1$.
- 2
Выполним целочисленное деление $s$ на $4$ и одновременно умножим $n$ на $2$: $500 \to 125 \to 31 \to 7 \to 1 \to 0$. Получаем пять итераций цикла.
Ещё 1 шаг — в полном решении
У медицинской компании есть $N$ пунктов приёма биоматериалов на анализ. Все пункты расположены вдоль автомагистрали и имеют номера, соответствующие расстоянию от нулевой отметки до конкретного…
- 1
Если лаборатория открыта в пункте с координатой $x$, доставлять пробирки можно из пунктов с координатами от $x-M$ до $x+M$.
- 2
Для каждого пункта с количеством пробирок $q_i$ вычисляем число контейнеров: один неполный контейнер допускается, поэтому используется значение $\left\lceil\dfrac{q_i}{12}\right\rceil$.
Ещё 2 шага — в полном решении
По каналу связи передаётся последовательность целых неотрицательных чисел — показания прибора, полученные с интервалом в 1 мин. в течение $T$ мин. Прибор измеряет количество атмосферных осадков…
- 1
Два показания с индексами $i$ и $j$ допустимы, если расстояние между моментами их передачи не меньше $K$, то есть $|i-j| \geq K$.
- 2
При просмотре последовательности слева направо для элемента с индексом $i$ достаточно знать максимальный элемент среди позиций от $1$ до $i-K$. Этот максимум можно поддерживать за постоянное время на каждом шаге.
Ещё 2 шага — в полном решении
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом. Строится двоичная запись числа $N$. Если число $N$ чётное, то к этой записи справа и…
- 1
Проверим небольшие значения $N$, рассматривая чётные и нечётные числа отдельно.
- 2
Для чётного $N=2$ получаем $10_2\rightarrow111011_2=59_{10}$, а для следующего подходящего чётного числа $N=4$ получаем $100_2\rightarrow1110011_2=115_{10}$.
Ещё 2 шага — в полном решении
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом. 1. Строится двоичная запись числа $N$. 2. К этой записи дописываются справа ещё несколько…
- 1
Для чётного числа $N$ к двоичной записи слева приписывается единица, а справа — два нуля. Если длина записи $N$ равна $k$, то$$R=2^{k+2}+4N$$
- 2
При $k=4$ максимальное значение чётного $N$ равно $14$, поэтому максимальный результат равен $2^6+4\cdot14=120$, что недостаточно.
Ещё 4 шага — в полном решении
Пусть $M$ — сумма минимального и максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение $M$ считается равным нулю. Напишите…
- 1
Перебираем числа, начиная с $5\,100\,001$, пока не будут найдены пять подходящих чисел.$$n = 5\,100\,001, 5\,100\,002, \ldots$$
- 2
Для каждого числа раскладываем его на простые множители. Минимальный и максимальный простые множители обозначим $p_{\min}$ и $p_{\max}$.$$M = p_{\min} + p_{\max}$$
Ещё 2 шага — в полном решении
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Для поиска минимума среди чётных элементов задаём начальное значение k, большее любого допустимого элемента массива.$$k = 10001$$
- 2
Просматриваем все элементы массива. Если элемент чётный и меньше текущего значения k, сохраняем его в k.$$a[i] \bmod 2 = 0 \land a[i] < k \Rightarrow k := a[i]$$
Ещё 2 шага — в полном решении
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Выберем первый элемент массива, не делящийся нацело на 5, в качестве начального значения минимума.$$a[i] \mathbin{\%} 5 \ne 0$$
- 2
Просмотрим массив и обновим минимум, если найдём меньший элемент, не делящийся на 5.$$j = \min\{a[i]\mid a[i] \mathbin{\%} 5 \ne 0\}$$
Ещё 2 шага — в полном решении
Дана последовательность из $N$ натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, такие что сумма элементов каждой из них кратна $k = 61$. Найдите среди них…
- 1
Введём префиксные суммы $S_0 = 0$ и $S_i = a_1 + a_2 + \ldots + a_i$. Сумма подпоследовательности с номерами от $l+1$ до $r$ равна $S_r - S_l$.
- 2
Эта сумма кратна $61$ тогда и только тогда, когда $S_r$ и $S_l$ имеют одинаковые остатки при делении на $61$.
Ещё 3 шага — в полном решении
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Значения элементов равны 10, 8, 4, 3, 0, 7, 2, 1, 5, 9, 6 соответственно, то есть $A[0] = 10$, $A[1] = 8$ и так…
- 1
Начальное значение переменной равно $s = 0$. Последовательно сравниваем соседние элементы массива.$$A = [10, 8, 4, 3, 0, 7, 2, 1, 5, 9, 6]$$
- 2
При $j = 0, 1, 2, 3$ условие $A[j] < A[j+1]$ не выполняется.
Ещё 2 шага — в полном решении
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Фрагмент программы вычисляет значение переменной $s$ по формуле $s := s + A[i] - A[i+1]$ при изменении $i$ от 0…
- 1
Цикл выполняется для $i = 0, 1, \dots, 9$, поэтому переменная $s$ равна сумме соседних разностей.$$s=(A[0]-A[1])+(A[1]-A[2])+\dots+(A[9]-A[10])$$
- 2
Все промежуточные элементы сокращаются: $-A[1]+A[1}$, $-A[2]+A[2]$ и так далее.$$s=A[0]-A[10]$$
Ещё 1 шаг — в полном решении
Запишите число, которое будет напечатано в результате выполнения следующей программы.
- 1
Переменная $s$ принимает значения $0, 10, 20, 30, 40, 50, 60, 70$, после чего цикл выполняется ещё один раз и получает значение 80.$$s: 0 \to 10 \to 20 \to 30 \to 40 \to 50 \to 60 \to 70 \to 80$$
- 2
Условие цикла $s < 71$ выполняется 8 раз. При каждом выполнении переменная $n$ уменьшается на 2.$$n = 66 - 8 \cdot 2$$
Ещё 1 шаг — в полном решении
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 11. Значения элементов равны 5, 8, 7, 11, 10, 12, 9, 6, 4, 13, 3, 15 соответственно, то есть $A[0]=5$, $A[1]=8$ и так…
- 1
В начале $A[0]=5$ и $s=0$. При $i=1$: $8>5$, поэтому выполняется обмен, а $s$ становится равным 1. Теперь $A[0]=8$.
- 2
При $i=2$: $7>8$ — нет обмена. При $i=3$: $11>8$ — обмен, $s=2$, теперь $A[0]=11$.
Ещё 3 шага — в полном решении
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 6, 3, 4, 8, 7, 9, 5, 2, 0, 1 соответственно, то есть $A[0] = 6$, $A[1] = 3$ и т. д…
- 1
В начале $c=0$, а $A[0]=6$. При $i=1$: $A[1]=3<6$, поэтому $c=1$, после обмена $A[0]=3$.
- 2
При $i=2,3,4,5,6$ текущие значения $A[i]$ не меньше $A[0]=3$, поэтому обмен не выполняется.
Ещё 3 шага — в полном решении