给定整数N作为输入,您可以检查以下内容:

时间:2017-08-22 11:29:48

标签: java

给定一个整数N作为输入,可以检查以下内容:

如果N是奇数,则打印“Weird” 如果N是偶数,并且在2到5(含)之间,则打印“Not Weird” 如果N是偶数,并且在6到20(含)之间,则打印“Weird” 如果N是偶数,则打印“Not Weird”

我写了这段代码 -

public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        int ip;
        Scanner sc = new Scanner(System.in);
        ip = sc.nextInt();        
        if(ip%2==0 ){
           if(ip>=6 || ip<=20){
               System.out.println("Weird");
           }
            System.out.println("Not Weird");
            }
        else{
           System.out.println("Weird"); 
        }
    }
}

24失败 - 输出 - 奇怪的 不奇怪

预期 不奇怪。

有人能说出我的错误吗?

3 个答案:

答案 0 :(得分:2)

  

print“Not Weird”如果N是偶数,则在6和6之间   20(含)

这表明N应该在6到20之间并且你写了

if(ip>=6 || ip<=20)

如果考虑所有ip大于或等于6或所有ip小于等于20,那么所有数字。

您应该使用&&运算符,而不是||运算符

您的代码应为:

    ...
    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. 
           Print output to STDOUT. Your class should be named Solution. */
        int ip;
        Scanner sc = new Scanner(System.in);
        ip = sc.nextInt();        
        if(ip%2==0 ){
           if(ip>=6 && ip<=20){
               System.out.println("Weird");
           } else {
               System.out.println("Not Weird");
           }
        } else {
           System.out.println("Weird"); 
        }
    }
    ...

答案 1 :(得分:1)

在条件

中添加ip >= 6 && ip <= 20而不是ip >= 6 || ip <= 20

答案 2 :(得分:1)

一个非常简单易用的解决方案。

它可以满足您的所有条件。 希望它很清楚

Scanner sc = new Scanner(System.in);
int ip = sc.nextInt(); 
String str=  (ip %2 == 0 &&  ( ip >=2 && ip <= 5 ) || (ip > 20 )) ? "Not Weired" : "Weired"; 
System.out.println(str);
相关问题