Ошибка переполнения стека в методе рекурсии при попытке распечатать первые m кратных положительного целого числа n. Как это исправить? Код ниже уже логически правильно:Ошибка переполнения стека рекурсии Java
import java.util.Scanner;
public class Exercise3
{
public static void main (String args[])
{
Scanner keyboard = new Scanner(System.in);
int n, m;
System.out.println("Please enter values of n and m: ");
n = keyboard.nextInt();
m = keyboard.nextInt();
// logic of code explained above
for(int i = (m -(m - 1)); i <= m; i++)
{
System.out.print(multiple(n * i) + ",");
}
}
// Now Write the Recursive method
public static int multiple(int n)
{
if(n == 0)
return 1;
else
return multiple(n);
}
}
Ваш рекурсивный метод не имеет условия выхода. –
Собирался сказать кое-что как Юнед. Если все несколько экземпляров - это сам вызов, значит, у вас, очевидно, будет переполнение стека. – Chris
Ваше редактирование не намного лучше. Для всех значений, входящих в несколько, которые не равны нулю, вы все равно закончите бесконечную рекурсию, так как параметры для функции рекурсии должны меняться при каждом вызове, иначе переполнение стека будет всегда происходить (при отсутствии внешнего состояния). – Chris