Решите ! ! дана последовательность целых положительных чисел. найти произведение четных чисел. это одна из строчек, которая должна быть в программе for i: =1 to n do if a[i] mod 2=0 then p: =p*a[i];
Однобайтовый формат это восьмиразрядная сетка. Ну, потому что 1 байт - 8 бит. А 1 бит - 1 разряд Переведем число 86 в двоичную систему счисления и получим: 01010110 Теперь число -68: 01000100
А сейчас самое интересное - нужно прицепить минус. Сразу в дополнительном коде мы не представим число. Сначала нужно перевести его в обратный. Для этого нужно просто заменить все НУЛИ на ЕДИНИЦЫ, а ЕДИНИЦЫ на НУЛИ: 01000100 = 10111011
Вот теперь это число можно представить в дополнительном коде. Нужно всего лишь прибавить в конце единицу (прибавить именно операцией сложения, а не просто дописать):
Решите ! ! дана последовательность целых положительных чисел. найти произведение четных чисел. это одна из строчек, которая должна быть в программе for i: =1 to n do if a[i] mod 2=0 then p: =p*a[i];
begin
var n := ReadInteger;
var a := arrRandom(n, 1, 100);
a.Println;
var p := BigInteger(1);
for var i := 0 to n - 1 do
if a[i] mod 2 = 0 then p := p * a[i];
p.Println
end.
Пример9067 13 96 10 94 24 16 2 43 94 60 60 56 88 28 27 75 32 90 18 70 32 6 23 81 57 38 73 25 6 20 52 56 33 38 79 20 81 67 49 33 29 43 36 74 46 13 14 30 93 72 8 10 99 89 35 8 73 30 37 86 43 78 38 75 9 4 24 50 49 8 95 65 42 85 42 90 71 50 35 45 25 44 33 34 13 43 57 45 4
752729749734296001571550469794689018400554807071967543296000000000000000