我正在尝试使用实际上类似于三角形的print
方法为我的Pascal三角形程序生成整齐的输出。我的方法包含在Triangle
类中,如下所示:
public class Triangle {
protected int rows;
protected long[][] triangle;
public Triangle (int size) {
rows = size;
triangle = new long[rows + 1][];
long[] zerothRow = {1};
long[] firstRow = {1, 1};
int i = 0;
do {
if (i == 0) { triangle[0] = zerothRow; }
else if (i == 1) { triangle[1] = firstRow; }
else {
triangle[i] = new long[i + 1];
int j = 0;
do { triangle[i][j] = MathUtil.combination(i, j); } while (++j <= i);
}
} while (++i <= rows);
}
public void print () {
for (int i = 0; i < rows; ++i) {
int k = rows - i;
do { System.out.print("\t");} while (k --> 0);
for (int j = 0; j < triangle[i].length; ++j) {
System.out.printf("\t%d\t", triangle[i][j]);
}
System.out.println();
}
}
}
但是,当我从主驱动程序文件中调用此方法时,
public class Pascal {
public static void main(String[] args) {
Triangle myTriangle = new Triangle(16);
myTriangle.print();
}
}
输出如下:
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
我能做些什么来使三角形末端的文字不像现在那样倾斜吗?
答案 0 :(得分:0)
不使用\t%d\t
,而是使用%5d
。这会打印所有数字,就好像它们是5位数字一样。