Было несколько проблем, связанных с удвоением исходного кода: здесь и здесь . Задача, стоящая перед нами, немного сложнее, но должна быть выполнима практически на каждом языке.
В этом задании вы получите произвольное положительное целое число. Ваша программа должна вывести это целое число в два раза . Когда ваш исходный код удваивается, он принимает положительное целое число и выводит его в квадрате .
Как ваш исходный код удвоился? Ну, вы можете иметь это по-своему . Другими словами, вы можете разбить свой исходный код на строки байтов или символов (или токенов в токенизированных langs) любой равной длины, которую вы хотите , и повторять каждый фрагмент дважды по очереди.
Для начальной программы ABCDEFGHIJKL
(длина 12) все возможные дублированные программы:
Chunk length | Doubled source code
-------------+-------------------------
1 | AABBCCDDEEFFGGHHIIJJKKLL
2 | ABABCDCDEFEFGHGHIJIJKLKL
3 | ABCABCDEFDEFGHIGHIJKLJKL
4 | ABCDABCDEFGHEFGHIJKLIJKL
6 | ABCDEFABCDEFGHIJKLGHIJKL
12 | ABCDEFGHIJKLABCDEFGHIJKL
Обратите внимание, что это означает, что программы простых длин могут быть удвоены только двумя способами: каждый символ удваивается, или полная программа повторяется дважды.
Правила:
- Код должен быть полной программой или функцией.
- Стандартные лазейки запрещены.
- Стандартные методы ввода / вывода разрешены.
- Все символы / байты, включая пробелы и символы новой строки, учитываются в длине кода и вносят вклад в куски.
- Вы можете предположить, что входные данные и их квадрат могут быть представлены типом int / integer вашего языка.
- Вы не можете использовать завершающий символ новой строки или другой символ.
- Укажите свой размер куска в заголовке после подсчета байтов.
- Это код-гольф , поэтому короткие программы лучше! Если две программы имеют одинаковую длину, побеждает та, которая использует меньшую длину фрагмента. (Если у вас более длинная программа, которая использует меньшую длину чанка, то это тоже стоит опубликовать!)
- Если вашей программе требуется второй ввод / строка, вы можете не делать никаких предположений относительно ее значения. В частности, ваша программа должна работать, если второй вход пустой, такой же, как первый, или другое целое число. Если вашей программе не требуется второй ввод / строка, вы можете игнорировать это ограничение.
5 -> 10
:; двойной код: 5 -> 25 25
.
.0
в конце)?