你最近在一个不可靠的赌博网站上开了个账户,只要收费25美元,他们就会在0到50美元之间随机退还给你。在两次获得大约5美元后,你决定证明这个网站是一个骗局。使用默认密码访问他们的外部防火墙后,您可以找到进入他们的数据库服务器的方法,并找到持有最小和最大金额的值的位置。您决定将25 '9's插入其中作为最大值,但会收到一条错误消息,表示最大值必须为‘uint64 64’类型。然而,现在您注意到一些数字键似乎没有正确地键入远程控制台。这个挑战出现在您面前,就像在Q+A站点上键入一样。
只使用方便安装的程序来测试和执行您的特定语言,输出无符号64位整数值的最大大小,然而,除了这台机器上的编程工具之外,几乎所有的东西都被破坏了,使得您没有使用数字1,2,4,6,8 --无论是在源代码还是文本中,您都会注意到,对于每一段额外的代码,执行程序所花费的时间似乎要长得多得多,因此,如果您想在绘图之前发财,最好保持时间短!
挑战
发布于 2017-02-23 21:05:38
_M{解释:
_ # Create a bee going horizontally across the line, reading the code
M # Decrement the bee's counter, which starts at 0.
# This will set the counter to 2^64-1, because as bees don't have a concept of
# negative numbers, all values that are negative are translated to 2^64-n,
# and in this case, n = -1, as we are calculating 0 - 1.
{ # Print the value这种语言非常适合这一挑战。
以下是蜂蜡版的摘录:
每个人都知道,蜜蜂没有负数的概念,但是他们发现他们可以使用最重要的地址来绕过这个问题。因此,相对于蜜蜂的位置的坐标是由坐标的二补实现的。这样,64位地址空间的一半可用于本地寻址,而无需在每个方向上进行环绕。在64位十六进制中,最大正64位2的补语地址是9223372036854775807或0x7fffffffffffff。从0到此值的所有值都相同地转换为相同的64位值。在相反(负)方向上的所有值n都转化为2^64-n.例如: n=-1的地址为18446744073709551615。n=-9223372036854775808是9223372036854775808的地址。
这基本上是未签署的长期合同。
编辑:我仍然期待着丹尼斯会用一个2字节的解决方案来打败我。
发布于 2017-02-21 11:28:17
main(){printf("%lu",~0l);}打印一个unsigned long值。
要求long的大小为64位。
发布于 2017-02-21 13:27:37
most-positive-word
在64位编译器上,最肯定的词是64 64uint。这是件事。
https://codegolf.stackexchange.com/questions/110748
复制相似问题