Problem Statement
Task
Given an integer,n, perform the following conditional actions:
If n is odd, print Weird If n is even and in the inclusive range of 2 to 5, print Not Weird If n is even and in the inclusive range of 6 to 20, print Weird If n is even and greater than 20, print Not Weird Complete the stub code provided in your editor to print whether or not n is weird.
Input Format
A single line containing a positive integer,n.
Constraints
1<=n<=100
Output Format
Print Weird if the number is weird; otherwise, print Not Weird.
Sample Input 0
3
Sample Output 0
Weird
Sample Input 1
24
Sample Output 1
Not Weird
Explanation
Sample Case 0: n=3 n is odd and odd numbers are weird, so we print Weird.
Sample Case 1: n=24 n>20 and n is even, so it isn't weird. Thus, we print Not Weird.
My solution to the problem.
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();
}
}
Can I get suggestions regarding the solution. Thank You.
The conditions should be merged: the result is Weird
for any number in the range 6 <= n <= 20
OR n is odd, otherwise it is 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");