Начало
Помощь
Поиск
Войти
Регистрация
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Войти
Логические задачи
NazVa.net
Форум умных людей
>
Задачи и головоломки
>
Математические задачи
(Модераторы:
Илья
,
Лев
) >
Программистская.
Страниц:
1
[
2
]
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Программистская. (Прочитано 4883 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Суть задачи такова: представим, что нам нужно написать программу, которая последовательно считывает с клавиатуры n целых чисел (каждое из которых не меньше единицы и не больше n) и определяет, являются ли они перестановкой чисел от 1 до n. Число n известно заранее, до написания программы.
Обычно такое пишется довольно просто. Можно, например, взять массив из n элементов, заполнить его нулями, а затем, считав число, присваивать соответствующему элементу единичку. Если в итоге все элементы стали единичными - значит, перестановка. Нет - значит нет.
Но тут нас поджидает засада: у нас ограничена память. У нас есть только две переменные типа unsigned short (принимающих значения от 0 до 2
16
-1), причём одна из них используется как счётчик цикла, и ничего другого мы с ней сделать не можем.
Как нам проверить, являются ли введённые числа перестановкой? И для какого максимального N мы сможем это сделать?
Вилли ☂
Гений-Говорун
Offline
Сообщений: 1572
СПАСИБО
-вы поблагодарили: 532
-вас поблагодарили:
722
☃
Re: Программистская.
�
Ответ #15 :
Октябрь 05, 2011, 10:06:38 �
Показать скрытый текст
Код:
{цикл i = [1 ; n]
a = a XOR i XOR x
}
a
- наша переменная
i
- счетчик
x
- очередное число
Итого
a = 0
, только, если все
x
уничтожаться всеми
i
Записан
moonlight
Умник
Offline
Сообщений: 741
СПАСИБО
-вы поблагодарили: 19
-вас поблагодарили:
232
Re: Программистская.
�
Ответ #16 :
Октябрь 05, 2011, 17:30:02 �
Цитата: Трикс от Октябрь 05, 2011, 10:06:38
Показать скрытый текст
Код:
{цикл i = [1 ; n]
a = a XOR i XOR x
}
a
- наша переменная
i
- счетчик
x
- очередное число
Итого
a = 0
, только, если все
x
уничтожаться всеми
i
Показать скрытый текст
Записан
Зачем откладывать на завтра то, что можно отложить на послезавтра?
Страниц:
1
[
2
]
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Задачи и головоломки
-----------------------------
=> Логические задачи и головоломки
=> Математические задачи
=> Задачи на знания
=> Задачи по настольным играм
=> Для программистов
=> Авторские задачи
=> Помогите решить!
=> Назва Продуксьон
=> Тесты
=> Умное видео
=> Игры
-----------------------------
Общение
-----------------------------
=> Отдых, развлечения, увлечения
=> Общество
=> Любовь
=> Философский
=> Свободное общение
-----------------------------
Nazva.net
-----------------------------
=> Сайт
-----------------------------
Trash
-----------------------------
=> Реклама