В одном файле напишите программу, которая не требует ввода и не производит вывода. При запуске он должен полностью изменить имя файла, в котором он содержится, независимо от того, какое это имя , без изменения кода или создания других длительных побочных эффектов.
Любой способ достижения этого хорошо. Имеет значение только то, что после запуска программы единственным долговременным изменением является изменение ее имени файла. например, в каталоге не должно быть новых файлов.
Повторный запуск программы должен вернуть имя обратно. Действительно, программа должна запускаться произвольно много раз.
Для целей этой задачи:
- Вы можете предположить, что имена файлов - это всегда строчные буквы (az) длиной от 1 до 127 символов. (Если ваш язык требует, чтобы файлы имели расширения для запуска, просто переверните деталь перед расширением, например
mycode.bat
→edocym.bat
.) - Вы можете предположить, что файл кода находится в каталоге сам по себе, поэтому у него не будет конфликтов имен (кроме как с самим собой).
- Вы не можете предполагать, что имя файла не является палиндромом, то есть то же самое при обращении. Имена файлов, которые являются палиндромами, должны работать так же, как и те, которые не работают.
- Вы можете прочитать содержимое вашего файла или метаданные. Там нет Куайна ограничений здесь.
- Вы можете предположить, что ваша программа будет работать в конкретной современной обычной операционной системе (например, Windows / Linux), поскольку не все оболочки имеют одинаковый набор команд.
В качестве конкретного примера, скажем, у вас есть программа на Python в файле, который называется
mycode
в своем собственном каталоге. Бегpython mycode
в терминале должно привести к обратному имени файла
edocym
. Файлedocym
должен быть один в своем каталоге - файл с именемmycode
больше не должен существовать. Бегpython edocym
обратится к имени обратно
mycode
, после чего процесс может повторяться бесконечно.Если тот же файл Python был переименован
racecar
(без изменения кода), а затем запуститьpython racecar
ничего не должно заметно измениться, так как «гоночный автомобиль» - палиндром. То же самое происходит, если имя файла было, скажем,
a
илиxx
.
Самый короткий код в байтах побеждает. Ответ Tiebreaker выше.