Страниц: 1 [2]
  Печать  
Автор Тема: Программистская.  (Прочитано 4904 раз)
0 Пользователей и 1 Гость смотрят эту тему.

Суть задачи такова: представим, что нам нужно написать программу, которая последовательно считывает с клавиатуры n целых чисел (каждое из которых не меньше единицы и не больше n) и определяет, являются ли они перестановкой чисел от 1 до n. Число n известно заранее, до написания программы.

Обычно такое пишется довольно просто. Можно, например, взять массив из n элементов, заполнить его нулями, а затем, считав число, присваивать соответствующему элементу единичку. Если в итоге все элементы стали единичными - значит, перестановка. Нет - значит нет.

Но тут нас поджидает засада: у нас ограничена память. У нас есть только две переменные типа unsigned short (принимающих значения от 0 до 216-1), причём одна из них используется как счётчик цикла, и ничего другого мы с ней сделать не можем.

Как нам проверить, являются ли введённые числа перестановкой? И для какого максимального N мы сможем это сделать?
Вилли ☂
Гений-Говорун
*
Offline Offline

Сообщений: 1572

СПАСИБО
-вы поблагодарили: 532
-вас поблагодарили: 722





Просмотр профиля
Ответ #15 : Октябрь 05, 2011, 10:06:38 �

Показать скрытый текст
Записан
moonlight
Умник
****
Offline Offline

Сообщений: 741

СПАСИБО
-вы поблагодарили: 19
-вас поблагодарили: 232


Просмотр профиля Email
Ответ #16 : Октябрь 05, 2011, 17:30:02 �

Показать скрытый текст
Показать скрытый текст
Записан

Зачем откладывать на завтра то, что можно отложить на послезавтра?
Страниц: 1 [2]
  Печать  
 
Перейти в: