Дан массив, содержащий 2019 положительных целых чисел, не превышающих
15 000. необходимо найти количество элементов массива, шестнадцатеричная
запись которых заканчивается цифрой a, заменить на это количество все
элементы, восьмеричная запись которых содержит ровно 2 цифры, и вывести
изменённый массив.
напишите на одном из языков программирования программу для решения
этой . исходные данные объявлены так, как показано ниже.
запрещается использовать переменные, не описанные ниже, но разрешается
не использовать часть из описанных.
===== PascalABC.NET =====
begin
var a := ArrRandom(2019, 1, 15000);
// раскомментировать если не надо выводить исходный массив:
//var k := a.Count(p -> p mod 16 = 10);
// закомментировать, если не надо выводить исходный массив:
var k := a.Println.Count(p -> p mod 16 = 10);
Println('Найдено элементов:', k);
var n := 0;
for var i := 0 to a.High do
if a[i].InRange(8, 63) then
(a[i], n) := (k, n + 1);
a.Println;
Println('Сделано замен:', n)
end.
Объяснение:
Если шестнадцатеричная запись числа заканчивается цифрой A, то остаток от его деления на 16 равен А₁₆ = 10.
Числа, восьмеричная запись которых содержит ровно 2 цифры, лежат в диапазоне [10₈; 77₈] = [8; 63]