Берем третьи байты и переводим в двоичную систему счисления:добавим в начале нулей, чтобы получилось 8 цифр. ← ← найдем маску. запишем с столбик. если элементы одинаковые, ставим соответствующее число, если элементы разные, ставим крестик: 00000101 00011101 000xx101 ← маска т.к. по правилу в маске, сначала идут единицы, переместим их в начало: 11xx0000 если бы по условию, надо было бы найти наименьшее возможное значение, то мы бы заменяли крестики(х) на нули. т.к. по условию необходимо наибольшее возможное значение, подставляем вместо крестиков(x), единицу и переведем в десятичную систему счисления:
// PascalABC.NET 3.0, сборка 1073 var c:char; begin Write('Введите римскую цифру (I,V,X,L,C,D,M): '); Readln(c); case c of 'I':Writeln('1'); 'V':Writeln('5'); 'X':Writeln('10'); 'L':Writeln('50'); 'C':Writeln('100'); 'D':Writeln('500'); 'M':Writeln('1000'); else Writeln('Вы ошиблись') end end.
В семиричной системе счисления используется 7 цифр, это 0 1 2 3 4 5 6.
А семерки и выше, понятно, нет.