We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- Java
- Advanced
- Java Lambda Expressions
- Discussions
Java Lambda Expressions
Java Lambda Expressions
Sort by
recency
|
169 Discussions
|
Please Login in order to post a comment
This problem isn't specitic enough. I don't know what it wants me to do. I literally don't know what the problem is asking. A lot of the problems in this section "Java" are very specific, and do a great job to introduce new concepts, so that's what I expect. Furthermore, I do not understand the code. There is an interface that has not been implemented, then another class called "MyMath" that calls methods from that interface? If I don't understand how this code even works, how am I supposed to complete it? If I have never used a Lambda expression in my life, I should be able to read the problem, do a bit of research, then solve it.
The problem description should be more specific, especially about returned output for a case when a number is not a palindrome, it looks that expected text then is "NOT PALINDROME". It also looks that test cases contain only some small numbers and algorithms do not have to be efficient.
import java.io.; import java.util.; interface PerformOperation { boolean check(int a); } class MyMath { public static boolean checker(PerformOperation p, int num) { return p.check(num); }
public PerformOperation isOdd() { return num -> num % 2 != 0; }
public PerformOperation isPrime() { return num -> (num == 2 || num == 3) || (num % 2 != 0 && num % 3 !=0); }
} // Write your code here
public class Solution {
public static void main(String[] args) throws IOException { MyMath ob = new MyMath(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); PerformOperation op; boolean ret = false; String ans = null; while (T--> 0) { String s = br.readLine().trim(); StringTokenizer st = new StringTokenizer(s); int ch = Integer.parseInt(st.nextToken()); int num = Integer.parseInt(st.nextToken()); if (ch == 1) { op = ob.isOdd(); ret = ob.checker(op, num); ans = (ret) ? "ODD" : "EVEN"; } else if (ch == 2) { op = ob.isPrime(); ret = ob.checker(op, num); ans = (ret) ? "PRIME" : "COMPOSITE"; } else if (ch == 3) { op = ob.isPalindrome(); ret = ob.checker(op, num); ans = (ret) ? "PALINDROME" : "NOT PALINDROME";
} System.out.println(ans); } } }