PascalTriangle.java:
import java.io.OutputStream;
public interface PascalTriangle {
public void setLevel(int level);
public void print(OutputStream out);
}
ZhongPascalTriangleImpl.java:
mport java.io.IOException;
import java.io.OutputStream;
public class ZhongPascalTriangleImpl implements PascalTriangle {
public ZhongPascalTriangleImpl() {
}
public ZhongPascalTriangleImpl(int level) {
setLevel(level);
}
public void setLevel(int level) throws IllegalArgumentException {
if (level < 1)
throw new IllegalArgumentException();
this.level = level;
generateTriangle();
}
public void print(OutputStream out) {
StringBuilder buffer = new StringBuilder();
for(int i=0;i<triangle.length;i++){
for(int j=0;j<triangle[i].length;j++){
buffer.append(String.format("%4d",triangle[i][j]));
}
buffer.append("/n");
}
try{
out.write(buffer.toString().getBytes());
}
catch(IOException e){
e.printStackTrace(System.err);
}
}
private int level;
private int triangle[][];
private void generateTriangle() {
triangle = new int[level][];
for (int i = 0; i < level; i++) {
triangle[i] = new int[i + 1];
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j] + triangle[i - 1][j - 1];
}
}
}
}
Main.java:
import java.io.File;
import java.io.FileOutputStream;
public class Main {
public static int LEVEL = 12;
public static void main(String args[]){
PascalTriangle pascalTriangle = new
ZhongPascalTriangleImpl(LEVEL);
pascalTriangle.print(System.out);
File file = new File("C://triangle.txt");
try{
FileOutputStream fileOutputStream = new FileOutputStream(file);
pascalTriangle.print(fileOutputStream);
fileOutputStream.close();
}
catch(Exception e){
//ignore
}
}
}