Дан целочисленный массив из 100 элементов. Элементы массива могут принимать неотрицательные целые значения до 10000 включительно. Необходимо найти количество элементов массива, в десятичной записи которых содержатся ровно две шестёрки, а затем заменить элементы, которые в шестнадцатеричной записи оканчиваются на A, на число, равное найденному значению. Гарантируется, что такие элементы в массиве есть. В качестве результата необходимо вывести изменённый массив в обратном порядке, каждый элемент выводится с новой строчки.
Например, для исходного массива из шести элементов:
170 6 666 6126 26 66
программа должна вывести следующий массив
66 2 6126 2 6 2
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Паскаль:
const N = 100;
var a: array [1..N] of longint;
i, k, x, b: longint;
begin
for i := 1 to N do
readln(a[i]);
...
224
302
Ответы на вопрос:
I) 1) выписываем остатки (те что в скобках 1 или 0 с последнего числа полученного при делении ) 104 / 2 = 52 остаток (0) 52 / 2 = 26 остаток (0) 26 / 2 = 13 остаток (0) 13 / 2 = 6 остаток (1) 6 / 2 = 3 остаток (0)3 / 2 = 1 (< == начинаем выписывать с этого числа) остаток (1) < = следующее ответ: 1101000 2) 510 / 2 = 255 остаток (0) 255 / 2 = 127 остаток (1) 127 / 2 = 63 остаток (1) 63 / 2 = 31 остаток (1) 31 / 2 = 15 остаток (1) 15 / 2 = 7 остаток (1) 7 / 2 = 3 остаток (1) 3 / 2 = 1(< == первое число) остаток (1) ответ : 111111110 3) 634 / 2 = 317 остаток (0) 317 / 2 = 158 остаток (1) 158 / 2 = 79 остаток (0) 79 / 2 = 39 остаток (1) 39 / 2 = 19 остаток (1) 19 / 2 = 9 остаток (1) 9 / 2 = 4 остаток (1) 4 / 2 = 2 остаток (0) 2/ 2 = 1 (< == первое число)остаток (1) ответ : 1101111010 4) число 731 попробуйте сделать сами для понимания ii) 1) 10111 нумеруем все цифры с права налево (первый номер-0) 1(4) 0(3) 1(2) 1(1) 1(0) далее схема такая 1*2 в четвёртой степени(4) + 0 * 2 в третьей(3)+1*2 во второй(2) + 1*2 в первой(1) +1*2 в нулевой (0) и так мы получаем 16+0+4+2+1= 232) 110011 нумеруем 1(5) 1(4) 0(3) 0(2) 1(1) 1(0) 1*2 в пятой +1*2 в четвёртой +1*0 в третьей +1*0 во второй +1*2 первой +1*2 в нулевой=32+16+0+0+2+1= 51 два других сделайте сами для тренировки
Популярно: Информатика
-
syav197904.06.2022 11:35
-
lnstagramDeviza16.06.2021 09:24
-
victoriyasergi05.08.2022 00:51
-
malaya10818.03.2022 12:37
-
vckdkskk22.06.2023 08:30
-
tarasIT20.01.2022 19:48
-
Школянка22.02.2020 08:17
-
mercurry10.10.2022 07:28
-
Ноунеймкакойто04.12.2022 09:56
-
Кирито744915.05.2021 01:14