1100111111=1*2^9+1*2^8+0*2^7+0*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=512+256+0+0+32+16+8+4+2+1=831
111111111=1*2^8+1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=511
1100011111=1*2^9+1*2^8+0*2^7+0*2^6+0*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=799
В двоичную: (делим на 2каждое число до 1 или 0)
1) 4321=1000011100001
-4320 2160 2
1 -2160 1080 2
0 -1080 540 2
0 -540 270 2
0 -270 135 2
0 -134 67 2
1 -66 33 2
1 -32 16 2
1 -16 8 2
0 -8 4 2
0 -4 2 2
0 -2 1
0
Теперь собираем от последнего остатка до первого выделенные цифры.
2) 3333=110100000101
3) 7372 =1110011001100
Ваши ошибки:
1) Объявление текстовых переменных и неиспользование их.
2) Ненужный тип longint, зачем такой большой тип?
Типа Integer вполне достаточно (-32 768 … 32 767).
3) Объявление абсолютно ненужной переменной z.
4) Главная ошибка - это непонимание задания, и соответственно неправильно построенный алгоритм.
Попробуйте это, самое оптимальное по времени, минимальное кол-во переменных. Использован метод Гаусса, можно было и арифм. прогрессию.
var
n: integer;
text: text;
begin
assign(text, 'input.txt'); reset(text);
readln(text, n); close(text);
if (n > 10000) then exit;
assign(text, 'output.txt'); rewrite(text);
if n < 0 then Writeln(text, -((1 + abs(n)) * (abs(n) / 2) - 1))
else Writeln(text, (1 + n) * (n / 2));
close(text);
end.
1100111111=1*2^9+1*2^8+0*2^7+0*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=512+256+0+0+32+16+8+4+2+1=831
111111111=1*2^8+1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=511
1100011111=1*2^9+1*2^8+0*2^7+0*2^6+0*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=799
В двоичную: (делим на 2каждое число до 1 или 0)
1) 4321=1000011100001
-4320 2160 2
1 -2160 1080 2
0 -1080 540 2
0 -540 270 2
0 -270 135 2
0 -134 67 2
1 -66 33 2
1 -32 16 2
1 -16 8 2
0 -8 4 2
0 -4 2 2
0 -2 1
0
Теперь собираем от последнего остатка до первого выделенные цифры.
2) 3333=110100000101
3) 7372 =1110011001100
Ваши ошибки:
1) Объявление текстовых переменных и неиспользование их.
2) Ненужный тип longint, зачем такой большой тип?
Типа Integer вполне достаточно (-32 768 … 32 767).
3) Объявление абсолютно ненужной переменной z.
4) Главная ошибка - это непонимание задания, и соответственно неправильно построенный алгоритм.
Попробуйте это, самое оптимальное по времени, минимальное кол-во переменных. Использован метод Гаусса, можно было и арифм. прогрессию.
var
n: integer;
text: text;
begin
assign(text, 'input.txt'); reset(text);
readln(text, n); close(text);
if (n > 10000) then exit;
assign(text, 'output.txt'); rewrite(text);
if n < 0 then Writeln(text, -((1 + abs(n)) * (abs(n) / 2) - 1))
else Writeln(text, (1 + n) * (n / 2));
close(text);
end.