Программа 1.
program P1;
var a,b,sum, i : Integer;
begin
write('a = '); readln(a);
write('b = '); readln(b);
sum := 0;
for i := a to b do sum := sum + i;
writeln('sum = ', sum);
end.
Программа 2.
program P2;
var arr : array[1..8] of Integer;
i, count,weight : Integer;
begin
randomize;
for i := 1 to 8 do arr[i] := Random(10) + 10;
count := 0; weight := 0;
for i := 1 to 8 do if arr[i] > 15 then begin
count := count + 1; weight := weight + arr[i];
end;
writeln('Общее к-ство ', count);
writeln('Общий вес ', weight);
end.
1. Установим допустимые сочетания двух последних битов (битов четности).
Если в N было четное количество единиц, то дописывается ноль. Поскольку ноль не меняет количества единиц, второй бит четности тоже будет нулевым. Правило №1: Если в двоичном представлении четное количество единиц, то дописывается 00.
Если в N было нечетное количество единиц, то дописывается единица. Это меняет количество единиц на четное, поэтому второй бит четности будет нулевым. Правило №2: Если в двоичном представлении нечетное количество единиц, то дописывается 10.
Первое число R, большее 180, это 181. Переведем его в двоичную систему счисления.
181₁₀ = 10110101₂
Мы видим, что оба наших правила нарушены, т.е. число 181 не подходит в качестве R.
Представление N (101101) содержит четное количество единиц, а для четного количества действует Правило №1 и мы должны записать 00, что уменьшит наше минимально возможное число R=181₁₀
Но если мы в числе N поменяем местами два правых бита, получим число 101110, которое больше чем 101101 и теперь по все тому же Правилу №1 мы получаем право приписать два нолика и получить R=10111000₂ = 184₁₀
Объяснение: