/***************************
 * Pascal's Triangle and 
 * Sierpinski's Triangle
 * CSC 204 - Spring 2008
 * Mark Goadrich
 ***************************/
public class Pascal {
    public static void main(String[] args) {
	
	// get the maximum level from the user
	int level = Integer.parseInt(args[0]);

	// calculate Pascal's triangle
	int[][] pascal = new int[level][];
	for (int i = 0; i < level; i++) {
	    
	    // set up column width based on i
	    pascal[i] = new int[i+1];

	    // first is always 1
	    pascal[i][0] = 1;

	    // middle part, need some js
	    for (int j = 1; j < i; j++) {
		pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
	    }

	    // last is always 1
	    pascal[i][i] = 1;
	}

	// print Sierpinski's triangle
	for (int i = 0; i < level; i++) {
	    for (int j = 0 ; j <= i; j++) {
		
		// if the entry is odd, print X, otherwise print " "
		if (pascal[i][j] % 2 == 0) {
		    System.out.print(" ");
		} else {
		    System.out.print("X");
		}
	    }
	    System.out.println();
	}
    }
}

