Я пытаюсь создать треугольник Паскаля, и строка «return pascalTriangle (row - 1, col - 1) + pascalTriangle (row - 1, col);»в рекурсивном методе, который возвращает значения int в треугольнике Паскаля, вызывает исключение в потоке "main" java.lang.StackOverflowError.Он печатает только одну строку, «1», а затем выдает исключение для других строк.Что мне нужно исправить, чтобы оно не выбрасывало никаких исключений и образовывало треугольник Паскаля?Вот мой код:
import java.util.Scanner;
/**
* This program takes n input from the user, and forms Pascal's Triangle in n number of rows that the user entered.
*/
public class DD_PascalsTriangle {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("Enter an integer: ");
int n = scanner.nextInt(); //the number of rows created in the Pascal's Triangle
printTriangle(n); //print Pascal's Triangle
}
/**
*
* @param row rows in Pascal's Triangle
* @param col columns in Pascal's Triangle
* @return values in the Pascal's Triangle
*/
private static int pascalTriangle(int row, int col) {
if (col==0 || col==row) return 1; //base case
else return pascalTriangle(row - 1, col - 1) + pascalTriangle(row - 1, col); //create the values in Pascal's Triangle
}
/**
*
* @param n the input from the user (aka the n number of rows in Pascal's Triangle)
*/
private static void printTriangle(int n){
for (int row=0; row<n; row++){
for (int col=0; col<n;col++){
System.out.println(pascalTriangle(row,col) + " ");
}
System.out.println();
}
}
}