|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.09.2009, 20:04 | #1 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 54
|
Зеркальное отражение
Доброго времени! Нужна помощь. Есть некая последовательность чисел, например 12321, её можно назвать симметричной, так как она читается с лева направо и с право налево одинаково.
Программе задаётся последовательность чисел, требуется определить минимальное количество и каких чисел надо приписать в конце этой последовательности, что бы она стала симметричной. В входном файле дано количество элементов исходной последовательности и далее дана сама "недостроенная" последовательность. Прошу помочь реализовать! Заранее спасибо! |
15.09.2009, 20:44 | #2 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Весь код писать, думаю, не стоит. Вот, что мне сразу же в голову пришло:
Код:
Для последовательности вида 12321 код таков: Код:
|
15.09.2009, 21:48 | #3 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 54
|
Последовательность может быть абсолютной любой. Состоять из всех натуральных чисел и иметь самый разнообразный состав. Спасибо за части кода, но саму логику, алгоритм (а он должен быть естественно универсальным, и результат должен быть независимо от вариация последовательности) я понять к сожалению не смог.
|
15.09.2009, 22:27 | #4 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Логика вот такая:
Первый кусок кода: Предполагаю, что у меня есть массив символов, мне нужно определить минимальное количество символов, необходимое для того, чтобы дописав их в конец, у нас получилось симметричное число. Завожу вспомогательный массив, в котором буду подсчитывать текущее количество символов, которое не нужно дописывать для того, чтобы число стало симметричным. Например, есть число 1231331. Тогда первых пять членов массива есть нули. Шестой 1. Седьмой 2. Т.е. 31 как бы уже не должны дописываться справа. Если появляется символ, который рушит идиллию, например 12313312, если, то естественно счетчик хороших чисел обнуляется. Второй кусок кода для чисел вида 123. Т.е. считается, что я не должен делать число 123321, а должен сделать число 12321. Поэтому соответствующие элементы массива заполняются не 0, а 1. Т.е. хороших чисел по дефолту одно. Ну а дальше логика такая же, как и в предыдущем случае. Т.е 1232, для последней двойки в силу ее симметричности относительно 3 счетчик увеличивается, т.е. будет 2. Извините за сумбурное описание. Надеюсь, поймете. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отражение луча | Illusionist | Общие вопросы Delphi | 3 | 30.05.2009 23:20 |
Отражение рисунка от стенок | Надежда.. | Мультимедиа в Delphi | 14 | 20.12.2008 23:24 |
Зеркальное отображение элементов матрицы в паскале | SEREG@ | Помощь студентам | 12 | 12.09.2008 15:54 |