挑战:x
以这样一种方式定义表达式,使表达式(x == x+2)
求值为true。
我用C标记了问题,但欢迎使用其他语言的答案,只要它们具有创造力或突出语言的有趣方面即可。
我打算接受C解决方案,但其他语言也可以投票。
- 正确-适用于符合标准的实现。例外-假设是基本类型的实现,如果是常见实现(例如,假设
int
是32位2的补码),则可以。 - 简单-应该很小,使用基本语言功能。
- 有趣-我承认这是主观的。我有一些我认为有趣的示例,但我不想给出任何提示。更新:避免预处理器很有趣。
- 快速-第一个好的答案将被接受。
得到60个答案(我从没想到过这样的参与)后,总结一下可能会很好。
这60个答案分为7组,其中3组可以用C语言实现,其余用其他语言实现:
- C预处理程序。
#define x 2|0
有人建议,但还有许多其他可能性。 - 浮点。大数,无穷大
或NaN都起作用。 指针算术。指向巨大结构的指针导致加2来回绕。
其余的不适用于C:
- 运算符重载-
+
不加或==
始终返回true的 A。 - 制作
x
一个函数调用(有些语言允许它没有x()
语法)。然后,它每次都可以返回其他内容。 - 一位数据类型。然后
x == x+2 (mod 2)
。 - 不断变化
2
-您0
可以使用某种语言进行分配。
add to Set
标准库中的+表示,而无需重新定义+
自己)不属于IMHO这7类。
4. Quick
呢 您的意思是“谁认识一个人,并且有幸首先阅读此问题”?