gpt4 book ai didi

java - 用一小段 Java 代码将 343 更改为 42

转载 作者:行者123 更新时间:2023-12-01 19:56:12 25 4
gpt4 key购买 nike

我知道,此类问题可能被认为不属于 StackOverflow 的范围。如果它被否决,我会删除它,但我真的觉得它很有趣。

我发现了以下有趣的面试任务,对此我仍然没有看到任何聪明/棘手的解决方案,我想知道人们会想出什么。

Extend the following chunk of code with minimal number of lines in such a way that its answer will always be 42. You are not allowed to use assignments (including incrementation) and to modify existing lines of code.

public class Question {
public static void main(String[] args) {
int iters = 0;
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
for(int k = 0; k < 7; k++) {
iters++;
}
}
}
System.out.println(iters);
}
}

编辑

一个建议的答案是

System.out.println(42);
System.exit(0);

这是正确的。

但是,程序应该自然结束(无需手动终止),并且我想,不应该直接检查 iters 的值,我们应该测试索引:i, j,k.

我的想法是添加 6 行:

public class Question {
public static void main(String[] args) {
int iters = 0;
loopA: //added
for (int i = 0; i < 7; i++) {
loopB: //added
for (int j = 0; j < 7; j++) {
for(int k = 0; k < 7; k++) {
iters++;
}
if (j == 2) //added
break loopB; //added
}
if (i == 1) //added
break loopA; //added
}
System.out.println(iters);
}
}

最佳答案

只需在递增 iters 之前添加一个 if 子句

int iters = 0;
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
for(int k = 0; k < 7; k++) {
if (i > 0 && i == j) // Added 1 line
iters++;
}
}
}
System.out.println(iters);

关于java - 用一小段 Java 代码将 343 更改为 42,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49656102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com