三个整数的顺序

时间:2015-10-20 12:28:31

标签: java

  

给定三个整数,a b c和布尔equalOK如果"Strictly Increasing Order" a {{1}则打印b }严格按递增顺序排列,例如c2 5 11,但不是5 6 76 5 7。但是,如果5 5 7"equalOk",则允许相等,例如true5 5 7打印5 5 5。否则请打印"Increasing Order"

这是我到目前为止所做的:

"Not in order"

当我将其提交给在线评委时,它给了我21/100的分数

这里有什么问题?

5 个答案:

答案 0 :(得分:1)

似乎您的代码在每个案例中都正确处理,因此问题必须在其他地方。

如果equalOKtrue,则允许相等,可以使用以下内容更简单地编写条件:

else if(equalOK && c >= b && c >= a && b >= a)
{
    System.out.println("Increasing Order");
}

这与"Strictly Increasing Order"的条件相同,但允许相等。

您的代码希望扫描程序读取以下令牌(例如)5 5 7 true,以便a=5b=5c=7equalOK=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");
            }