首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编写一个使2+2=5的程序

编写一个使2+2=5的程序
EN

Code Golf用户
提问于 2014-05-30 06:54:35
回答 135查看 275.5K关注 0票数 391

编写一个程序,似乎添加了数字2和2,并输出5。这是一个暗地里的比赛。

您的程序无法输出任何错误。小心记忆孔!输入是可选的。

将2+2重新定义为5并不是很有创意!别再想了,试试别的吧。

EN

回答 135

Code Golf用户

发布于 2014-05-30 16:07:26

Java

反射确实是滥用Java的正确方法..。但你需要做的不仅仅是调整一些价值观。

代码语言:javascript
运行
复制
import java.lang.reflect.Field;

public class Main {
    public static void main(String[] args) throws Exception {
        Class cache = Integer.class.getDeclaredClasses()[0];
        Field c = cache.getDeclaredField("cache");
        c.setAccessible(true);
        Integer[] array = (Integer[]) c.get(cache);
        array[132] = array[133];

        System.out.printf("%d",2 + 2);
    }
}

输出:

代码语言:javascript
运行
复制
5

解释:

您需要对其进行更深的更改,而不是通常所能访问的。请注意,这是为Java6设计的,在JVM上没有传入任何奇怪的参数,否则会更改IntegerCache。Integer类中的 深度是整数的自由权重。这是一个从−128到+127的整数数组。通常情况下,cache[132]是4的位置。把它设为5。

警告:在真正的代码中这样做会让人非常不开心。

ideone代码演示

票数 666
EN

Code Golf用户

发布于 2014-05-31 11:04:30

C

相当便宜的诡计,但我相信我会抓住你们中的大多数人。

代码语言:javascript
运行
复制
int main() {
    int a = 2 + 2;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     a++;
    printf("%d",a);
    return 0;
}

在这里试试

向右滚动代码。我不确定在 /Linux上,但在OSX上,滚动条不是visible.,这是在您最喜欢的代码编辑器上启用“空间可视化”的一个好理由。

票数 294
EN

Code Golf用户

发布于 2014-05-30 11:42:30

Haskell

我只是喜欢你能把任何东西扔到ghci身上,而且它也会随你而动。

代码语言:javascript
运行
复制
λ> let 2+2=5 in 2+2
5
票数 293
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/28786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档