2D Arrays Pascals Triangle Blaise Pascal was a French mathem
2-D Arrays Pascal\'s Triangle
Blaise Pascal was a French mathematician and philosopher who lived in the mid-1600\'s. He accomplished much in his lifetime, including the construction of a mechanical calculator and some very early work in combinatorics and the development of differential calculus. In his studies, he devised what has become known as Pascal\'s Triangle, http://ptri1.tripod.com/ which simplifies the calculation of the coefficients of the expression (x + y)n, where n is a positive integer. That is, we all know
(x + y)2 = x2 + 2xy + y2
(implying coefficients of 1,2,1), but what are the coefficients of (x + y)3 or (x + y)4 or (x + y)10 By using Pascal\'s Triangle, these values can be quickly calculated.
The first part of Pascal\'s Triangle looks like this:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
From examination, you can see that if we number the rows beginning at 0, the values listed on each line correspond to the coefficients where n is equal to the line number. You can also see, except for the 1\'s, any coefficient is found simply by adding together the 2 numbers diagonally above it. (And, if you think about it, picture 0\'s everywhere along the outside edge, and the 1\'s can be calculated the same way!)
Write a program that calculates and displays the first 16 rows of Pascal\'s Triangle. (That is, it contains the coefficients for n=15 in the last row.) It must be displayed in the format shown above (but not symmetrically -- extra points credit if the triangle is formatted so that it is a perfectly symmetrical isosceles triangle when output) You must use a two-dimensional array to calculate and store the triangle. (How big will this 2D array have to be? YOU FIGURE IT OUT! Don\'t make it any larger than necessary.)
You are free to write as many (or as few) classes as you deem necessary (you should have at least two). You will be graded on modular design.
To turn in
_all source files necessary to compile and run program.
_name the class that contains your main method PascalTester
Solution
import java.util.*;
public class PascalTester {
public static final int r = 16 ;
private static int c = 0;
public static void main(String[] args) {
int[][] T = new int[r +1][];
T[1] = new int[1 + 2];
T[1][1] = 1;
for (int i = 2; i <= r; i++) {
T[i] = new int[i + 2];
for (int j = 1; j < T[i].length - 1; j++) {
T[i][j] = T[i-1][j-1] + T[i-1][j];
String str = Integer.toString(T[i][j]);
int len = str.length();
if (len > c)
c = len;
}
}
for (int i = 1; i <= r; i++) {
for (int k = r; k > i; k--)
System.out.format(\"%-\" + c + \"s\", \" \");
for (int j = 1; j < T[i].length - 1; j++)
System.out.format(\"%-\" + (c + c) + \"s\", T[i][j]);
System.out.println();
}
}
}
=============================================================
Output:
akshay@akshay-Inspiron-3537:~/Chegg$ javac PascalTester.java
akshay@akshay-Inspiron-3537:~/Chegg$ java PascalTester
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1

