1. Умножение чисел в троичной системе счисления. Составить программу, реализующую умножение двух неотрицательных целых чисел a (0(10) <= a(10) <= 181(10)) и b (0(10) <= b(10) <= 181(10)) в троичной системе счисления.
Вводимые числа представляют собой последовательность символов 0, 1, 2. Результаты работы программы должны быть выведены в троичной и десятичной системах счисления. В программе должна быть предусмотрена проверка правильности ввода троичного числа.
2. Хитрый купец.
Два купца отправились торговать за море. Каждый из них повез по N одинаковых тюков с товаром. В пути корабль попал в шторм и дал течь. Чтобы корабль не затонул, капитан приказал поднять весь груз на палубу корабля, расставить его вдоль бортов по периметру и выбросить за борт половину груза. Груз выбрасывается по следующему правилу:
1) каждый тюк получает порядковый номер, начиная с тюка, стоящего на носу корабля; их нумерация осуществляется по часовой стрелке;
2) номер первого выброшенного тюка соответствует текущему числу месяца M;
3) через K тюков следующий тюк с товаром выбрасывается.
Один из купцов прознал про это правило. Как необходимо расставить ему груз, чтобы ни один из его тюков не был выброшен?
3. Числовая последовательность.
Последовательность 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ..., получается по следующему правилу:
1) число 1 принадлежит последовательности;
2) в последовательность входят натуральные числа, не делящиеся ни на какие простые числа, кроме 2, 3 и 5.
Не используя операции вычитания, деления, целочисленного деления (div) и остатка от деления (mod), вывести на экран первые K (K <= 100) значений последовательности в порядке возрастания. Число K вводится с клавиатуры.
4. Распознавание по шаблону. Дана матрица размером 5 * 5, состоящая из нулей и единиц. Кроме того, заданы матрицы размером 5 * 3 — шаблоны нуля и единицы соответственно:
111 101 101 101 111 |
001 011 101 001 001 |
Если данная матрица 5 * 5 включает в себя шаблон нуля или единицы, а остальные элементы — нули, то выдать на экран соответствующий символ (0 или 1). В противном случае выдать на экран символ N.
Примечание: шаблон в матрице может быть повернут на угол, кратный 90°, и смещен по горизонтали или вертикали.
5. Лишние скобки. Составить программу, которая из вводимой строки, содержащей корректную запись арифметического выражения с общепринятыми математическими приоритетами, удаляет лишние скобки. Скобки считаются лишними, если их отсутствие не влияет на значение выражения. Выражение содержит только переменные, состоящие из латинских букв, знаки четырех операций (+, –, * и /) и круглые скобки. Его длина не превышает 60 символов. Имя переменной может встречаться в выражении только один раз. Выражение не может содержать операции смены знака (–a, +a и т.п.).
Примеры:
1) ((alpha + beta) + gamma) => alpha + beta + gamma 2) a * (b - c) => a * (b - c) 3) p * (q / r) * s / (a * b) => p * q / r * s / (a * b)
6. Гео. На квадратной клетчатой доске четного порядка k между двумя соперниками разыгрывается следующая партия. Сначала доска свободна. Игроки последовательно ставят по фишке своего цвета на свободные клетки доски, не имеющие общих сторон с клетками, занятыми соперником, пока не окажется, что один из игроков не может сделать очередной ход; этот игрок считается проигравшим.
Необходимо написать программу, реализующую выигрышную стратегию для второго игрока. Предполагается, что программа запрашивает очередной ход соперника и выдает свой ход в виде двух натуральных чисел — номеров столбца и строки, в которых находится занимаемая клетка (нумерация начинается с левого нижнего угла). Программа должна проверять корректность вводимого хода, а также заканчивать игру с выдачей соответствующего сообщения после своего хода, завершающего партию. Программа должна правильно работать для доски любого четного порядка k <= 8.