gpt4 book ai didi

JAVA——找出差异

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

我遇到了下面的问题,但是无论我采取什么方法,我都无法让它通过所有测试。谁能指出我哪里出错了?

该问题必须使用 Math.abs() 和 IF 语句来解决,不能使用循环/函数/等。

////////////////////////////// PROBLEM STATEMENT //////////////////////////////
// Given three ints, a b c, print true if one of b or c is "close" //
// (differing from a by at most 1), while the other is "far", differing //
// from both other values by 2 or more. Note: Math.abs(num) computes the //
// absolute value of a number. //
// 1, 2, 10 -> true //
// 1, 2, 3 -> false //
// 4, 1, 3 -> true //
///////////////////////////////////////////////////////////////////////////////

我的代码:

  if ((Math.abs(a-b) <= 1 || Math.abs(a+b) <= 1) && (Math.abs(a-c) >= 2 || Math.abs(a+c) >= 2)) {

if (Math.abs(a-c) >= 2 || Math.abs(a+c) >= 2) {
System.out.println("true");
} else {
System.out.println("false");
}

} else if (Math.abs(a-c) <= 1 || Math.abs(a+c) <= 1) {

if (Math.abs(a-b) >= 2 || Math.abs(a+b) >= 2) {
System.out.println("true");
} else {
System.out.println("false");
}

} else {
System.out.println("false");
}

最佳答案

看起来过于复杂,您可能想要更简单的东西:

boolean abIsClose = Math.abs(a-b) <= 1;
boolean acIsClose = Math.abs(a-c) <= 1;
boolean bcIsClose = Math.abs(b-c) <= 1;
boolean result = abIsClose && !acIsClose && !bcIsClose;
result = result || (!abIsClose && acIsClose && !bcIsClose);
result = result || (!abIsClose && !acIsClose && bcIsClose);

Abs总是给出一个正数,这样你就不需要确认一个值在-1和1之间,你只需要确认<= 1。

关于JAVA——找出差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542742/

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