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("(rn|[nru2028u2029u0085])?"); 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.
Advertisement
Answer
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");