第2个回答 2009-04-24
package co;
public class YanghuiTriangle {
public static void main(String[] args) {
YanghuiTriangle yht = new YanghuiTriangle();
yht.draw(10);
}
public void draw(int len) {
int[] temp1 = new int[len];
for (int i = 0; i < len - 1; i++) {
temp1[i] = 0;
}
temp1[len - 1] = 1;
print(temp1);
for (int i = 0; i < len-1; i++) {
if (i == len - 2) {
temp1 = makeLine(temp1, true);
print(temp1);
} else {
temp1 = makeLine(temp1, false);
print(temp1);
}
}
}
private int[] makeLine(int[] arr1, boolean isLast) {
int[] result = new int[arr1.length + 1];
if (isLast) {
result[0] = 1;
} else {
result[0] = 0;
}
result[result.length - 1] = 1;
result[result.length - 2] = 0;
for (int i = 0; i < arr1.length - 2; i++) {
result[i + 1] = arr1[i] + arr1[i + 2];
}
return result;
}
private void print(int[] temp){
for(int i=0;i<temp.length;i++){
if(temp[i] == 0)
System.out.print(" ");
else
System.out.print(temp[i]);
}
System.out.println();
}
}