Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите алгоритм, который находит сумму элементов массива, больших 100 и при…
- 1
Для каждого элемента проверяем два условия: он должен быть больше 100 и не должен делиться на 4 без остатка.$$a_i > 100 \land a_i \bmod 4 \ne 0$$
- 2
В первом проходе складываем все элементы, удовлетворяющие этим условиям.$$S = \sum_{i=1}^{30} a_i$$
Ещё 2 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения программы. Во всех вариантах программы переменная $s$ вначале равна $20$, переменная $n$ — $1$. Пока $s > 0$, выполняются действия…
- 1
Проследим за изменением переменной $s$ после целочисленного деления на $2$.$$20 \to 10 \to 5 \to 2 \to 1 \to 0$$
- 2
После получения значения $s = 0$ условие цикла становится ложным. До этого момента тело цикла выполнилось 5 раз.$$k = 5$$
Ещё 1 қадам — толық шешімде
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: символ «?» означает ровно одну произвольную цифру; символ «*» означает любую последовательность…
- 1
Последовательность вместо «*» может иметь от 0 до 3 цифр: при 4 цифрах число превысит $10^8$.
- 2
При одной цифре получаем условие $123407 + 10x \equiv 0 \pmod{131}$. Оно выполняется при $x=6$5, поэтому найдено число $124057$.
Ещё 3 қадам — толық шешімде
На каждом 3-м километре кольцевой автодороги с двусторонним движением установлены контейнеры для мусора. Длина кольцевой автодороги равна $3N$ километров. Нулевой километр и $3N$-й километр…
- 1
Пронумеруем пункты от $0$ до $N-1$, а количество мусора в пункте $i$ обозначим через $a_i$. Расстояние между пунктами $i$ и $j$ равно $3\cdot\min(|i-j|,N-|i-j|)$.
- 2
Для центра в пункте $0$ вычислим начальную стоимость $C_0$, просуммировав для каждого пункта произведение количества мусора на кратчайшее расстояние до пункта $0$.
Ещё 3 қадам — толық шешімде
Пусть $M$ — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение $M$ равным нулю. Напишите…
- 1
Для каждого числа перебираем делители от 2 до квадратного корня из числа. Первый найденный делитель является минимальным нетривиальным делителем и простым числом.$$d = p$$
- 2
Максимальный собственный делитель числа равен частному от деления числа на его минимальный делитель.$$q = \dfrac{n}{p}$$
Ещё 2 қадам — толық шешімде
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
В переменной `j` храним максимальный найденный элемент, кратный 4. Так как элементы массива не меньше −10 000, начальное значение −10 001 гарантированно меньше любого элемента массива.$$j = -10001$$
- 2
В первом проходе рассматриваем только элементы, кратные 4, и сохраняем среди них максимум.$$a[i] \bmod 4 = 0 \ \text{и}\ a[i] > j \Rightarrow j := a[i]$$
Ещё 2 қадам — толық шешімде
По каналу связи передаётся последовательность целых чисел — показания прибора. В течение $N$ минут прибор ежеминутно регистрирует значение силы тока и передаёт его на сервер. Определите три таких…
- 1
Перебор всех троек позиций имеет слишком большую сложность, поэтому состояния нужно обновлять при одном проходе по файлу.$$O(N^3)$$
- 2
Пусть $a_i$ — показание в момент $i$. Для каждой позиции поддерживаем минимальную сумму одного, двух и трёх выбранных показаний, причём последние выбранные позиции удовлетворяют ограничению по расстоянию.$$d_1(i)=a_i$$
Ещё 3 қадам — толық шешімде
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Выбираем Python. Так как все элементы находятся в диапазоне от 1 до 10 000, начальное значение минимума можно взять равным 10001.$$k = 10001$$
- 2
Первым проходом рассматриваем только элементы, кратные 7, и сохраняем среди них наименьший.$$a[i] \mathbin{\%} 7 = 0 \Rightarrow k = \min(k, a[i])$$
Ещё 2 қадам — толық шешімде
Пусть $M$ — сумма минимального и максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение $M$ считается равным нулю. Напишите…
- 1
Последовательно перебираем целые числа, начиная с числа, следующего за $8\ 007\ 494\ 154$.
- 2
Для каждого числа раскладываем его на простые множители. Минимальный и максимальный простые множители складываем: $M=p_{\min}+p_{\max}$.
Ещё 2 қадам — толық шешімде
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом. Строится двоичная запись числа $N$. Если $N$ чётное, к этой записи справа приписываются…
- 1
Проверим числа, меньшие 16. Числа от 1 до 7 имеют не более трёх двоичных разрядов, поэтому после преобразования дают число меньше 190. Для чисел от 8 до 15 рассмотрим наибольшие возможные результаты.
- 2
Для чётного числа $N$ к двоичной записи приписываются слева единица и справа два нуля. Для $N=14$ имеем $14_{10}=1110_2$, поэтому $R=1111000_2=120_{10}$.$$1110_2\to1111000_2=120_{10}$$
Ещё 2 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения программы. В программе переменная $s$ принимает начальное значение $48$, переменная $n$ — значение $1$. Пока $s > 0$, из $s$…
- 1
Определим количество выполнений цикла. Начальное значение $s = 48$, на каждом шаге из него вычитается $7$.$$48 - 7k \leq 0$$
- 2
Минимальное целое значение $k$, удовлетворяющее неравенству, равно $7$. Значит, цикл выполняется семь раз.$$k = 7$$
Ещё 1 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения программы. Во всех вариантах программы переменная $s$ получает значение $30$, переменная $n$ — значение $1$. Пока $s > 0$…
- 1
Определим значения переменной $s$ после последовательных итераций цикла:$$30 \to 23 \to 16 \to 9 \to 2 \to -5$$
- 2
После пятой итерации значение $s$ становится отрицательным, поэтому цикл выполнится $5$ раз.$$k = 5$$
Ещё 1 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения следующей программы. Программа представлена на пяти языках программирования. Бейсик: DIM S, N AS INTEGER S = 309 N = 0 WHILE S > 0 S…
- 1
Изначально $s = 309$, $n = 0$. На каждой итерации цикла из $s$ вычитается 20.$$s_k = 309 - 20k$$
- 2
Цикл продолжается, пока значение $s$ положительно. После 15 итераций $s = 309 - 20 \cdot 15 = 9$, поэтому выполняется ещё одна итерация.
Ещё 1 қадам — толық шешімде
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 3, 4, 2, 9, 5, 1, 8, 2, 1, 7 соответственно, то есть $A[0]=3$, $A[1]=4$ и т. д…
- 1
Начинаем с массива $[3,4,2,9,5,1,8,2,1,7]$ и устанавливаем $c=0$.
- 2
При $i=1$: $3<4$, выполняется обмен, $c=1$. Массив становится $[4,3,2,9,5,1,8,2,1,7]$.
Ещё 8 қадам — толық шешімде
Напишите программу, которая перебирает целые числа, большие 2 626 695 891, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не…
- 1
Отбираем простые числа, в десятичной записи которых последовательность «67» встречается ровно один раз.
- 2
Проверяем произведения пар таких простых чисел, начиная с чисел, больших 2 626 695 891.
Ещё 1 қадам — толық шешімде
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны $3, 1, 4, 6, 5, 7, 8, 0, 2, 9$ соответственно, то есть $A[0] = 3$, $A[1] = 1$ и т. д…
- 1
В начале $A[0] = 3$ и $c = 0$. При $i = 1$: $A[1] = 1$, условие не выполняется.
- 2
При $i = 2$: $A[2] = 4 > 3$, поэтому выполняется обмен и $c = 1$. Теперь $A[0] = 4$.
Ещё 4 қадам — толық шешімде
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$. Сначала строится троичная запись числа $N$. Если число $N$ делится на 3, к этой записи дописываются две…
- 1
Последовательно проверим значения $N$ от 1 до 11 и переведём полученные жазбалар в десятичную систему.
- 2
Для $N=8$: $8=22_3$, остаток при делении на 3 равен 2. После умножения на 5 получаем 10, а $10_{10}=101_3$. Следовательно, $R=22101_3=217<228$.$$R=2\cdot3^4+2\cdot3^3+1=217$$
Ещё 4 қадам — толық шешімде
У исполнителя Квадратор две команды, которым присвоены номера: 1. возведи в квадрат; 2. прибавь 1. Первая из них возводит число на экране в квадрат, вторая — увеличивает его на 1. Запишите порядок…
- 1
Начинаем с числа 1. Дважды применяем команду 2, прибавляя по 1:$$1 \xrightarrow{2} 2 \xrightarrow{2} 3$$
- 2
К числу 3 применяем команду 1 — возводим в квадрат:$$3^2 = 9$$
Ещё 1 қадам — толық шешімде
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от $-10\,000$ до $10\,000$ включительно. Опишите на естественном языке или на одном из языков…
- 1
Заведём переменную $j$ для накопления суммы и обнулим её.$$j = 0$$
- 2
Переберём все 20 элементов массива. Элемент добавляется к сумме только в том случае, если остаток от деления на 11 не равен нулю.$$a[i] \bmod 11 \ne 0$$
Ещё 1 қадам — толық шешімде
Запишите число, которое будет напечатано в результате выполнения следующей программы. Для удобства программа представлена на языке Python.
- 1
Изначально $s = 0$ и $n = 0$. Цикл выполняется, пока $s < 71$.$$s=0,\quad n=0$$
- 2
После каждой итерации значение $s$ увеличивается на 10. После семи итераций $s = 70$, поэтому условие цикла всё ещё истинно.$$s=7\cdot 10=70$$
Ещё 2 қадам — толық шешімде