<span>а)1000011110101=4341
</span>1010010111011=5307
<span>110011001100110101=209717
</span>б)123=1111011
456=<span>111001000
1024=</span><span>10000000000
4095=</span><span>111111111111</span>
Надеюсь то что надо,если нет ответь.
Это по суди задача на поиск минимума функции на отрезке (-20;20). Функция - парабола. Аналитически можно найти ее вершину, х=1, f(1)=-64.
<em>// PascalABC.NET 3.3, сборка 1583 от 25.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
function nDigits(n:int64):integer; // если число
begin
Result:=0;
if n<0 then n:=-n;
while n>0 do begin
Result+=1;
n:=n div 10
end
end;
function nDigits(s:string):=s.Length; // если строка
begin
Writeln(nDigits(1234567890123456)); // 16
Writeln(nDigits('123456789012345678901234567890')) // 30
end.
<u>Результат</u>
16
30
//PascalABC.NET
//Версия 3.3, сборка 1611 (06.01.2018)
begin
var a:=ArrRandom(ReadInteger('Введите размер массива:'),-20,20); a.Println;
Println('В первой половине положительных:',a[:a.Length div 2].Println.Where(t->t>0).Count);
Println('Во второй половине отрицательных:',a[a.Length div 2:].Println.Where(t->t<0).Count);
end.
Пример:
Введите размер массива: 10
-6 8 -12 -5 -4 16 -1 -14 1 0
-6 8 -12 -5 -4
В первой половине положительных: 1
16 -1 -14 1 0
Во второй половине отрицательных: 2