![]() |
|
Модераторы: Alx, Fixin |
![]()
|
|
| ANTON_AL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 292 Регистрация: 27.1.2007 Репутация: нет Всего: нет |
Здравствуйте!
Помню, как то мне попалась задачка при поступлении на одни курсы: Дано целое число ( любое ). Без опреаций со строками преобразовать его так, чтобы оно было записано задом наперёд. Я так и не знаю, как её решить.... С уважением, Антон. |
|||
|
||||
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: нет Всего: 2 |
Это сообщение отредактировал(а) Strannik - 31.1.2007, 11:09 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 2 Всего: 146 |
мой вариант -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| ANTON_AL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 292 Регистрация: 27.1.2007 Репутация: нет Всего: нет |
Я тогда примерно так и написал, но меня интересует, можни ли её решить каким нибудь хитрым способом, поигавшись с числами, может в бинарном виде. ( Это типа как обменять значения двух переменных без участия третьей ) Вот в таком вот духе...
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 2 Всего: 146 |
т.к. числа десятичные то без модулей 10 ничего не будет работать,
и хитрее можно сделать но код усложнится на порядок имхо было бы 16 ричные вопросов не возниклобы -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| V.A.KeRneL |
|
||||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: нет Всего: 14 |
Ну, блин, ANTON_AL, чё-то ты ни фига подробно, то нужно не засписал!..
Во-первых, не указал язык программирования => приходится гадать между двумя самыми пополярными C (C++) и Pascal (Delphi). Во-вторых, что не так очевидно, не указана система счисления, представление числа в которой требуется инвертировать. Скорее всего десятиное. Но также вполне возможно, что двоичное. [Крайне мало-]вероятны все остальные. В-третьих, не слишком жёсткие ограниения, которые легко обошёл Strannik, заюзав в каестве дополнительной временной структуры хранения данных не строку, а массив. Наверное, надо было сказать, что допустимы только численные (в т.ч. побитовые) операции, без прочих внешних копирований. В-четвёртых: «Дано целое число ( любое )». Наверно, всё-таки, не любое, а неотрицательное. Пока, вроде, все замечания... Romikgy привёл более устойчивую к ограниениям версию, чем Strannik. Ещё есть такие понятия, как реверс битов и байтов. Может прогится... Из книжки Генри Уоррена, мл. «Алгоритмические трюки для программистов»: «Ниже показан эффективный метод реверса битов в слове [3]: в первой строке меняются местами соседние биты, во второй — соседние 2-битовые поля и т.д.Все пять операторов присвоения можно выполнять в произвольном порядке.
Для ряда машин можно воспользоваться усовершенствованием, приведённым влистинге 7.1, которое заключается в том, чтобы избежать больших непосредственно задаваемых значений. Этот код требует выполнения 30 базовых RISC-команд и не использует команд ветвления. Листинг 7.1. Реверс битов
-------------------- [ИСТОНИКИ ИНФОРМАЦИИ] 3. Найдено в подпрограмме интерпретатора REXX, написанной Марком Аусландером (Marc A. Auslander).» Это сообщение отредактировал(а) V.A.KeRneL - 4.2.2007, 17:51 -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
||||
|
|||||
| Strannik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.1.2007 Репутация: нет Всего: 2 |
Strannik привёл решение максимально быстропишущееся (из тех что приходят в голову сразу), удовлетворяющее заданному ограничению. (на олимпиадах иначе нельзя...). V.A.KeRneL, респект! Классную информацию нашел. Мне вот буквально только что эту книгу («Алгоритмические трюки для программистов») скинули... |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Ой, как все сложно...
Все! Это сообщение отредактировал(а) mr.Anderson - 4.2.2007, 16:17 |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: нет Всего: 88 |
mr.Anderson, а ты свой код проверял? Чё та мне кажется, что если ввести число, например 12034, то будет не так уж коротко, а тем более, ясно. Но, может быть я ошибаюсь. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| V.A.KeRneL |
|
||||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: нет Всего: 14 |
Неа, не ошибаешься.
вместо
-------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
||||
|
|||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Ступил.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |