我编写了代码,但是它对于小型输入正常工作,并且需要很长时间才能达到平均大小的输入,但是对于大型输入,它在线程“ main”中显示异常java.lang.StackOverflowError这是我的代码,请帮助我解决此问题
import java.util.*;
public class demo{
public static long print(long N){
if(N==0)
return 0;
else if(N==1)
return 1;
else if(N==-1)
return -1;
else
return(2*print(N-1)+3*print(N-2));
}
public static void main(String[] args){
long N;
long cases=0;
Scanner scan = new Scanner(System.in);
N = scan.nextLong();
if(N<0)
N*=(-1);
cases=print(N);
System.out.println(cases);
}
}