涉及源代码加倍的挑战很多:here和here。我们在这里要做的任务比较艰巨,但是应该可以用几乎所有语言来完成。
在此挑战中,您将输入一个任意正整数。你的程序必须输出整数一倍。当源代码加倍时,它将接受一个正整数,并将其输出为squared。
您的源代码如何增加一倍?好吧,你可以按照自己的方式去做。也就是说,你可以分割你的源代码成字节或字符的字符串(或标记化LANGS令牌)的任何等于你想要的长度,并且连续重复每个块的两倍。
对于初始程序ABCDEFGHIJKL
,(长度为12),以下是所有可能的加倍程序:
Chunk length | Doubled source code
-------------+-------------------------
1 | AABBCCDDEEFFGGHHIIJJKKLL
2 | ABABCDCDEFEFGHGHIJIJKLKL
3 | ABCABCDEFDEFGHIGHIJKLJKL
4 | ABCDABCDEFGHEFGHIJKLIJKL
6 | ABCDEFABCDEFGHIJKLGHIJKL
12 | ABCDEFGHIJKLABCDEFGHIJKL
请注意,这意味着素数长度的程序只能以两种方式加倍:每个字符加倍,或者整个程序重复两次。
规则:
- 代码必须是完整的程序或功能。
- 禁止出现标准漏洞。
- 允许使用标准I / O方法。
- 所有字符/字节(包括空格和换行符)都计入代码的长度,并有助于组成块。
- 您可以假设输入及其平方可以由您语言的int / integer类型表示。
- 您可能不假定尾随换行符或其他字符。
- 在字节数后的标题中提供块大小。
- 这是代码高尔夫,所以程序越短越好!如果两个程序的长度相同,则使用较小块长度的程序将获胜。(如果您有一个较长的程序,而该程序使用的块长度较小,那也值得发布!)
- 如果您的程序需要第二个输入/行,则可以不对其值进行任何假设。特别是,如果第二个输入为空,与第一个输入相同或为另一个整数,则您的程序应该可以工作。如果您的程序不需要第二个输入/行,则可以忽略此限制。
5 -> 10
; 双重代码:5 -> 25 25
。
.0
末尾带有)吗?