!(https://i.stack.imgur.com/UpHxf.png) When I run the code on my Eclipse IDE , it reads the input properly through the console but when I try to submit the code on SPOJ , the compiler throws NZEC error
I have come to the conclusion that the error shows up because of the way I'm trying to read the input
Line 1 of input is the number of test cases followed by the inputs. Eg:
2 --> No of test cases
123 --> Input number
131 --> Closest next palindrome
41
44
Please tell me the right way to accept inputs or some fix.
import java.io.*;
import java.io.BufferedReader;
import java.lang.*;
public class NextPalindrome_SPOJ {
public static void main(String[] args) throws IOException {
int t = Integer.valueOf((new BufferedReader(new InputStreamReader(System.in))).readLine());
// BufferedReader r = new BufferedReader (new InputStreamReader (System.in));
// String s;
// while((s = r.readLine()) != null && !s.isEmpty()) --> alternate way to read
// input
while (t-- > 0) {
long n = Long.valueOf((new BufferedReader(new InputStreamReader(System.in)).readLine()));
if (n < 9)
System.out.print(n + 1);
else {
while (true) {
n++;
if (String.valueOf(n).equals(String.valueOf((new StringBuffer(String.valueOf(n)).reverse()))))
break;
}
System.out.println(n);
}
}
}
}
OUTPUT:
Exception in thread "main" java.lang.NumberFormatException: null
at java.base/java.lang.Long.parseLong(Long.java:662)
at java.base/java.lang.Long.valueOf(Long.java:1151)
at Main.main(Main.java:11)
As it's name implies, a
BufferedReaderis buffered. You cannot use it as you do in that code. Apart from that, avoid throwing exceptions out of amainmethod. Also, useStringBuilders instead ofStringBufferwhenever you can: it's much faster. Try something like that: