supercom-ru-marinaguseva4267
?>

Вкаких ссч справедливы равенства 2*2=10, 2*3=11, 3*3=13

Информатика

Ответы

likakedo4ka439
2*2=10 в 4-ричной системе счисления 2*3=11 в 5-ричной 3*3=13 в 6-ричной 
sryzhova6392
Var   n, k, d2, d1, d0: integer;   e2, e1, e0: integer; procedure getdigits(m: integer; var d2, d1, d0: integer); {перевод числа [100..fff]в 16-ю систему счисления} begin   d0 : = m mod 16;   m : = m div 16;   d1 : = m mod 16;   d2 : = m div 16 end; begin   n : = 0;   {рассматриваем шестнадцатиричные числа от 100 до 7ff}   for k : = $100 to $7ff do   begin       getdigits(k, d2, d1, d0);       if (d2 = 2) or (d1 = 2) or (d0 = 2) then       begin           getdigits(2 * k, e2, e1, e0);           if d0 + d1 + d2 = e0 + e1 + e2 then n : = n + 1       end   end;   writeln('n=', n) end. тестовое решение: n=23
Avdimov5
Опишем формальную грамматику для разбора входной строки. < символ> : : = < буква> | < знак> < буква> : : = 'a' | 'b' | 'c' | | 'y' | 'z' < знак> : : = '+' | '-' < терм> : : = < буква> [ < терм> ] < операнд> : : = [ < знак> ] < терм> < строка> : : = < операнд> [ < операнд> ] ниже программа на языке pascal.abc, реализующая разбор входной строки и её по правилам подобных членов. const   n = 30; {максимальное количество операндов, я так захотел! }   pm = ['+', '-']; {символы < знак> }   letter = ['a'..'z']; {символы < буква> } type   toper = record       sgn: integer;       vars: string   end;   tm = array[1..n] of toper;   tasort = array[1..n] of string; {для сортировки} var   s: string;   l, p: integer;   symb: set of char; procedure getsymbol(var c: string); { сканирует строку s с позиции p и возвращает элемент < символ> продвигает курсор p к первому необработанному символу строки s } var   found: boolean; begin   found : = false;   c : = '';   while (p < = l) and (not found) do   begin       if s[p] in symb then begin           found : = true;           c : = s[p]       end;       p : = p + 1   end end; procedure sort(var a: tasort; kol: integer); {сортировка вставкой} var   i, j: integer;   x: string;   flag: boolean; begin   for i : = 2 to kol do   begin       x : = a[i];       j : = i - 1;       flag : = false;       while (j > 0) and (not flag) do           if x < a[j] then           begin               a[j + 1] : = a[j];               j : = j - 1           end           else flag : = true;       a[j + 1] : = x   end end; function getsign(c: char): integer; begin   case c of       '+': result : = 1;       '-': result : = -1;   else result : = 0   end end; procedure getoper(var oper: toper); { строит элемент < операнд> максимально возможной длины и упорядочивает составляющие его символы в лексикографическом порядке. если операнд построить невозможно, в oper.vars помещается пустая строка. процедура обращается к процедурам getsymbol и sort. } var   i, n: integer;   c, c1: string;   exitflag: boolean;   a: tasort; begin   c : = '';   exitflag : = false;   getsymbol(c1); {попытаемся получить знак}   if c1[1] in pm then oper.sgn : = getsign(c1[1])   else begin       oper.sgn : = 1;       c : = c1   end;   repeat       getsymbol(c1);       if c1 = '' then exitflag : = true       else if c1[1] in pm then begin           p : = p - 1;           exitflag : = true       end       else           c : = c + c1   until exitflag;   if c < > '' then   begin       n : = length(c);       for i : = 1 to n do a[i] : = c[i];       sort(a, n);       c : = '';       for i : = 1 to n do c : = c + a[i];       oper.vars : = c   end   else oper.vars : = '' end; procedure add2m(var a: tm; c: toper; var pn: integer); { ищет среди элементов массива a.vars элемент, с с.vars. при нахождении добавляет c.sgn к a[i].sgn, в противном случае добавляет в массив новый элемент a[i], увеличивая pn на 1. при вызове pn - количество элементов в массиве. } var   i: integer;   c1: string;   found: boolean; begin   c1 : = c.vars;   i : = 1;   while (i < = pn) and (not found) do   begin       found : = (c1 = a[i].vars);       if found then a[i].sgn : = a[i].sgn + c.sgn       else i : = i + 1   end;   if not found then begin       a[i].sgn : = c.sgn;       a[i].vars : = c1;       pn : = pn + 1   end end; function convert(k: integer): string; begin   case k of       -1: result : = '-';       0: result : = '';       1: result : = '+';   else begin           str( k, result);           if k > 0 then result : = '+' + result       end   end end; var   c, cz: string;   n1, i: integer;   opr: toper;   a: tm; begin   symb : = pm + letter;   p : = 1;   n1 : = 0;   writeln('введите исходное выражение');   readln(s);   s : = lowercase(s); {перевод символов в нижний регистр}   l : = length(s);   repeat       getoper(opr);       add2m(a, opr, n1)   until p > l;   if n1 > 0 then   begin       cz : = convert(a[1].sgn);       if cz = '+' then cz : = '';       if cz = '' then c : = ''       else c : = cz + a[1].vars;       for i : = 2 to n1 do       begin           cz : = convert(a[i].sgn);           if cz < > '' then c : = c + cz + a[i].vars       end   end   else c : = '';   if c='' then c: ='0';   if c[1]='+' then c: =copy(c,2,length(c)-1);   writeln('результат: ', c) end. тестовое решение: введите исходное выражение abc +      a+bca  -acb+abc+abc  +a  результат: 3abc+2a введите исходное выражение ab-bca+bc+cba+abc-ba+cba+da+adb+bad-db результат: 2abc+bc+ad+2abd-bd

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Вкаких ссч справедливы равенства 2*2=10, 2*3=11, 3*3=13
Ваше имя (никнейм)*
Email*
Комментарий*