java pascal triangle array program wont compile

hi everyone,

this program is supposed to take a number 'rowCount' as input from a user, then use that number to create an equal number of rows in a pascal triangle. the code initializes pascal0[] and pascal1[] in the PascalTri class to remember values in the current (1) and previous (0) rows.
it's also supposed to print these rows to the console, but i must be doing something wrong because it hasnt worked. can anyone point me in the right direction?

public class PascalTri{
        public int rowCount;
        int[] pascal1 = new int[0];
        int[] pascal0 = {};
        public PascalTri(int row){
            row = rowCount;
            for(int i=0; i<row; i++){
                pascal1[0] = 1;
                pascal1[pascal0.length] = 1;
                pascal1 = new int[pascal0.length+1];
                for(int j=1; j<pascal0.length;j++){
                    pascal1[j] = pascal0[j] + pascal0[j-1];
                pascal0 = pascal1;
        public void displayRows(){
import java.util.Scanner;
    public class PascalDriver{
      public static void main(String[] args){
        Scanner scan = new Scanner(;
        System.out.println("Enter number of rows");
        int rowCount = scan.nextInt();
        PascalTri t = new PascalTri(rowCount);

Open in new window

Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

objectsConnect With a Mentor Commented:
you'd need to print it out as you calculate instead of printing it out from a separate method
you need to use a loop in displayRows to display the triangle
bpicheAuthor Commented:
how could I do that short of embedding the displayRows function within the PascalTri function?

thanks again
The new generation of project management tools

With’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

you need to use a 2d array, following shows how to use it with your current code

import java.util.Scanner;

public class PascalTri {

      int[][] pascal1 = null;

      public PascalTri(int row) {
            // create empty triangle
            pascal1 = new int[row][];
            // initialise first row
            pascal1[0] = new int[1];
            pascal1[0][0] = 1;
            // calculate remaining rows
            for (int i = 1; i < row; i++) {
                  pascal1[i] = new int[i+1];
                  pascal1[i][0] = 1;
                  pascal1[i][i] = 1;
                  for (int j = 1; j < pascal1[i].length; j++) {
                        int[] pascal0 = pascal1[i-1];
                        //pascal1[j] = ...;

      public void displayRows() {
            for (int i=0; i
bpicheAuthor Commented:
is there any way i can do this without 2d arrays? sorry i forgot to mention that >.<
a_bConnect With a Mentor Commented:
What  I would suggest is that you move the logic from the constructor of the PascalTri class to the displayRows(). Within displayRows(), run loops as shown below -

         //Print the values 1 upto rowCount
         //Print the values from  rowCount down to 1

This is in a nutshell, you might have to fine tune the indexes just a bit.
All Courses

From novice to tech pro — start learning today.