给定三个整数,
a
b
c
和布尔equalOK
如果"Strictly Increasing Order"
a
{{1}则打印b
}严格按递增顺序排列,例如c
或2 5 11
,但不是5 6 7
或6 5 7
。但是,如果5 5 7
为"equalOk"
,则允许相等,例如true
或5 5 7
打印5 5 5
。否则请打印"Increasing Order"
。
这是我到目前为止所做的:
"Not in order"
当我将其提交给在线评委时,它给了我21/100的分数
这里有什么问题?
答案 0 :(得分:1)
似乎您的代码在每个案例中都正确处理,因此问题必须在其他地方。
如果equalOK
为true
,则允许相等,可以使用以下内容更简单地编写条件:
else if(equalOK && c >= b && c >= a && b >= a)
{
System.out.println("Increasing Order");
}
这与"Strictly Increasing Order"
的条件相同,但允许相等。
您的代码希望扫描程序读取以下令牌(例如)5 5 7 true
,以便a=5
,b=5
,c=7
和equalOK=true
。
答案 1 :(得分:0)
这段代码可以简单得多:
if(c > b && b > a) {
System.out.println("Strictly Increasing Order");
}
else if (c >= b && b >= a && equalOK)
{
System.out.println("Increasing Order");
} else {
System.out.println("Not in Order");
}
您不需要检查三个不等式,因为>
关系是可传递的(即,如果c> b,b> a,那么c> a)。而不是检查"Increasing Order"
的相等性,请使用>=
。
答案 2 :(得分:0)
使用,此代码:
else if(equalOK && c >= b && b >= a)
{
System.out.println("Increasing Order");
}
代码中的问题而不是:
(b == c && c > a && equalOK)
使用
(b == c && b > a && equalOK)
答案 3 :(得分:0)
我认为这个条件足够(a <= b && c >= b && equalOK)
您可以找到全文后缀
import org.junit.Test;
import java.util.Random;
public class Order {
@Test
public void order()
{
int max=4;
Random r= new Random();
int a = r.nextInt(max);
int b = r.nextInt(max);
int c = r.nextInt(max);
System.out.println("a ,b ,c "+a +","+b+","+c);
boolean equalOK = false;
System.out.println("equal OK "+equalOK);
checkOrder(a, b, c, equalOK);
equalOK = true;
System.out.println("equal OK "+equalOK);
checkOrder(a, b, c, equalOK);
}
private void checkOrder(int a, int b, int c, boolean equalOK) {
if(c > b && b > a)
{
System.out.println("Strictly Increasing Order");
}
else if((a <= b && c >= b && equalOK))
{
System.out.println("Increasing Order");
}
else
{
System.out.println("Not in Order");
}
}
}
答案 4 :(得分:-1)
if((a == b && c > b && equalOK) || (b == c && c > a && equalOK) || (a == b && b == c && equalOK))
{
System.out.println("Increasing Order");
}
else if(c > b && b > a )
{
System.out.println("Strictly Increasing Order");
}
else
{
System.out.println("Not in Order");
}