program Vyv;
var a,b,i:integer;
begin
write('Введите начало диапазона a = ');
readln(a);
write('Введите конец диапазона b = ');
readln(b);
for i:=a to b do
if (i<0) and (i mod 2 = 0) then write(i,' ; ')
end.
Сначала запишем выражение в виде степеней двойки:
2^16096 - 2^3210 + 2^1024 - 2^7 + 2
Далее последовательно запишем представление числа по действиям:
1) 2^16096 = (в позиции 16096)10000...0
2^3210 = (в позиции 3210)10000...0
При их разности получится:
(16095)111111...111(3210)000...0
2) Прибавляем 2^1024 и получается (16095)111111...111(3210)000...01(1024)0....0
3) (16095)111111...111(3210)000...01(1023)1....1(7)0000000
4) (16095)111111...111(3210)000...01(1023)1....1(7)0000010
Вычисляем кол-о 1: 16095 - 3210 + 1 + 1023 - 7 + 1 + 1 = 13904
Ну можно перевести в 10ю систему сначала
12 ? 2 ? 2 = 11
12 - 2 / 2 = 11
Алгоритм:
Найти 1й элемент строки и записать его в поле i,j ,затем сравнивать все последующие значения той строки с этой переменной.
А что сделать то? Вы вопрос правильно сформулируйте!