<< На главную
Нормальный алгорифм Маркова
Текст программы:
// Пример: простейший калькулятор // (сложение, вычитание, умножение натуральных чисел) // Алфавит: 1234567890+-*abcdefghioxyz^@$#? // переводим числа из унарной в десятичную систему (часть 2) z^->za o^->a a^->b b^->c c^->d d^->e e^->f f^->g g^->h h^->i i^->^o za->1z zb->2z zc->3z zd->4z ze->5z zf->6z zg->7z zh->8z zi->9z zo->0z z->. // переводим числа из десятичной в унарную систему счисления 1->0$ 2->1$ 3->2$ 4->3$ 5->4$ 6->5$ 7->6$ 8->7$ 9->8$ $0->0$$$$$$$$$$ 0-> // умножаем числа в унарной системе счисления x$->$?x x?->? x-> ?$->$? $$*$->$*x$ $*$->$ *$$->*$ *$-> ?->$ // преобразуем отрицательные числа в унарной системе счисления -$-># #$->## // убираем плюсы $+#->+ #+$->+ +-> // сокращаем пары #$-> $#-> // переводим положительные числа из унарной в десятичную систему (часть 1) ^$->^^ $->y^ y->zo // переводим отрицательные числа из унарной в десятичную систему (часть 1) ^#->^^ #->@^ @->-zo
Ограничение на количество шагов (против зацикливания):
Входная строка:
Протокол работы:
Без подробностей