【发布时间】:2016-02-12 06:00:10
【问题描述】:
我有以下问题:有一个计算两个整数之间相似度的布尔静态方法,我被要求返回 4 个结果:
- 不改变方法的返回类型,它 应该保持布尔值。
- 不更新/使用外部变量和对象的值
这是我到目前为止所做的(我不能将返回值从布尔值更改为其他值,例如 int,我只能使用布尔值):
public static boolean isSimilar(int a, int b) {
int abs=Math.abs(a-b);
if (abs==0) {
return true;
} else if (abs>10) {
return false;
} else if (abs<=5){
//MUST return something else, ie. semi-true
} else {
//MUST return something else, ie. semi-false
}
}
【问题讨论】:
-
抛出一个包含返回值的异常,或者改变一个参数,比如
int[],除非它违反了约束2。 -
布尔值要么是真要么是假,所以你只有这两个选项。要返回这两个选项以外的任何内容,您需要将返回数据类型更改为其他内容。故事结束
-
谁问你这个的?对我来说,这似乎是一个棘手的问题,提出问题的人有一个解决方案,可以扩展他们在问题中使用的术语的定义。
-
今天早上在面试(实习)。信不信由你,剩下的问题都是小菜一碟,一些智商,一些Java基础知识。我想这件事有所作为,让我们现在等待结果
-
Gaaaack。我希望这不是一个面试问题。我真的质疑任何人的能力,他们认为像这样的面试问题会揭示谁更适合某个职位或实习。除非他们打算给那些说“那将是一种非常糟糕的编程方式”的受访者打分。但也许其他人可以向我解释这类问题的价值?