Java HackerRank 中的 If-Else,我的代码好还是我能找到更好的问题解决方案

Java If-Else in HackerRank, Is my code good or can I get better solution for the problem

问题陈述

任务

给定一个整数 n,执行以下条件操作:

如果 n 是奇数,打印 Weird 如果 n 是偶数且在 2 到 5 的范围内,则打印 Not Weird 如果 n 是偶数并且在 6 到 20 的范围内,则打印 Weird 如果 n 是偶数且大于 20,则打印 Not Weird 完成编辑器中提供的存根代码以打印 n 是否奇怪。

输入格式

单行包含一个正整数,n。

约束条件

1<=n<=100

输出格式

如果数字很奇怪就打印Weird;否则,打印 Not Weird.

示例输入 0

3

示例输出 0

奇怪

示例输入 1

24

示例输出 1

不奇怪

说明

示例案例 0:n=3 n 是奇数,奇数很奇怪,所以我们打印 Weird.

示例案例 1:n=24 n>20 并且 n 是偶数,所以这并不奇怪。因此,我们打印 Not Weird.

我的问题解决方案。

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {



    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int N = scanner.nextInt();
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
        if(N%2==0){
            if(N>1){
                if(N<6){
                    System.out.println("Not Weird");
                }
                else if(N<21){
                    System.out.println("Weird");
                }
                else{
                    System.out.println("Not Weird");
                }
            }
        }
        else{
            System.out.println("Weird");
        }

        scanner.close();
    }
}

我可以得到有关解决方案的建议吗?谢谢。

应该合并的条件:对于6 <= n <= 20范围内的任意数字结果为Weird OR n为奇数,否则为Not Weird:

System.out.println((6 <= n && n <= 20 || n % 2 != 0) ? "Weird" : "Not Weird");
// or
System.out.println((5 < n && n < 21 || n % 2 != 0) ? "Weird" : "Not Weird");
 if (~N % 2 == 0 || N <= 20 && N >= 6) {
   System.out.println("Weird");
} else if (N % 2 == 0 && N > 20 || (N >= 2 && 5 <= N)) {
   System.out.println("not Weird");
}