السﻻم عليكم
سوالى بخصوص StackOverflowError
انا اعلم انها يحصل عند وجود طريقة تنادى نفسها بستمرار الى ماﻻنهاية و هو ما يسبب امتﻻء ال stack الخاصة بى الاستدعاء
المهم هذا هو الكود
public static BigInteger naive(BigInteger x,int n) throws PuissanceNegativeException{
if(n==0){
return BigInteger.ONE;
} else {
if(n==1){
return x;
}else{
if(n > 1){
return ( x.multiply(Puissance.naive(x,(n-1))) );
}else{
throw new PuissanceNegativeException();
}
}
}
}عندما استدعى
System.out.println("methode naive 2¹⁰⁰⁰= "+Puissance.naive(BigInteger.valueOf(2),1000));يشتغل تمام لكن
System.out.println("methode naive 2¹⁰⁰⁰⁰= "+Puissance.naive(BigInteger.valueOf(2),100000));يعطيني stackoverflowexception
و اذا كان هذه هي حدود قدرات ال stack فما هو الحل؟