Разделить целую часть числа на триады от младших разрядов к старшим (влево от запятой);
- разделить дробную часть на триады в обратном направлении (вправо от запятой);
- заменить каждую триаду двоичных чисел соответствующей восьмеричной цифрой по таблице, предложенной выше;
- недостающие до триады позиции заполнить незначащими нуями.
Пример:
1010,111112=001010,1111102=12,768
PascalABC.NET 3.4
begin
var n := ReadInteger('n=');
var a := ArrRandom(n, 0, 2); a.Println;
var (k, km) := (0, 0);
for var i := 0 to n-1 do
if a[i] = 0 then
if k = 0 then k := 1
else k += 1
else
begin
if k > km then km := k;
k := 0
end;
Writeln('Максимальное количество нулей подряд равно ',km)
end.