下面这个程序实现的功能是:求一个五位数abcde,使得abcde*4=edcba(不能使用if,for,while,swith等语句)。
    我碰到的问题是这样的:当我调用solve方法的时候,把参数值设为是10000的时候就会出现好像是栈溢出的异常,如果我设成是20000就不会出现这中错误了,不知道是什么原因,希望大家能帮忙解释一下,谢谢~~
public class Test {    public long solve(long no) {
String str = String.valueOf(no);
String newstr = str.substring(4) + str.substring(3, 4)
+ str.substring(2, 3) + str.substring(1, 2)
+ str.substring(0, 1); long e = Long.parseLong(newstr);
        return (no > 99999) ? 1 : ((e == no * 4) ? no : solve(++no));
} public static void main(String[] args) {
Test test = new Test();
System.out.println(test.solve(19999));
}
}