я получаю этот «java.lang.StackOverflowError» , когда я запускаю код , но проблема приходит, когда я поставил большое число как (7,10)java.lang.StackOverflowError? В Java
это код, который я пишу
код для Рассчитайте Ackermann Функция
public static void main(String[] args) {
int m, n, s;
Scanner maher = new Scanner(System.in);
System.out.println(" the code for calculate The Ackermann Function ");
System.out.println(" Enter first number M");
m = maher.nextInt();
System.out.println(" Enter Second number N");
n = maher.nextInt();
System.out.println("A(" + m + " , " + n + ") = " + Ack(m, n) + " \n");
}
public static int Ack(int m, int n) {
if (m == 0) {
return n + 1;
}
if (m != 0 && n == 0) {
return Ack(m - 1, 1);
}
if (m != 0 && n != 0) {
return Ack(m - 1, Ack(m, n - 1));
}
return 0;
// This code written by Maher Al Shammari 212542270 // KFU
}
Я пытаюсь изменить тип долго, но проблема не решает ,,,,
Вы * сделать * понимать, что нет никакого способа, любой компьютер имеет достаточно места для хранения, что много уровней, не так ли? Говорить, что Акерманн (7,10) огромен, является массовым преуменьшением. –
Это своего рода точка функции Аккермана. Создание безумных сумм рекурсии. – millimoose