打印结果格式如下,注意,一定要个下面的格式一样,而且打印的行数可以由用户输入
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
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
关键是输入行数多了后下面的格式不能变形,也要很整齐。
我不要数组的解答
如果用一维数组来存放三角阵可以比用二维数组节省一半的空间,但java中第二维的长度可以互不相同,所以用java的二维数组实现也同可以的。
public class YangHuiTriangle {
private int n;
public YangHuiTriangle(int n) {
this.n = n;
}
//这个打印程序可以是以金字塔形式打印杨辉三角形.数据位数可以7位,但实际屏幕放不下。可以打16行。
//如果是在DOS窗口下打印,可以在窗口标题栏上,右键单击,选属性,把屏幕的宽度增大到200。这样可以看到20以上的杨辉三角形了。
//思路是每一个数据的输出都占固定的长度,数据本身小于8,前面用空格补足,本方法中数据输出定为8 public void printYangHuiTriangle() {
System.out.println("杨辉三角(" + n + ")层:");
String space=" ";
System.out.println(space.substring(0,(n-1)*4+7)+1);
long temp;
for (int i = 1; i <= n - 1; i++) {
System.out.print(space.substring(0,(n-i-1)*4));
for (int j = 0; j <= i; j++) {
temp=value(i,j);
System.out.print(space.substring(0,8-(Long.toString(temp)).length())+temp);
}
System.out.println();
}
}
//递归计算C(i,j) = 1 (k=0或者j=i);C(i,j) = C(i-1,j-1) + C(i-1,j)
public long value(int i, int j) {
if (( j == 0 ) || (j == i)) return 1;
return value(i-1, j-1) + value(i-1, j);
}
public static void main(String[] args) {
YangHuiTriangle y = new YangHuiTriangle(20);
y.printYangHuiTriangle();
}}
//如果想打印行数比较多的杨辉三角形,可以改变dos窗口的宽。方法是右建单击dos标题栏,先属性,修改窗口的大小和屏幕缓冲区的大小就可以了.
结果是:
F:\java>javac YangHuiTriangle.javaF:\java>java YangHuiTriangle
杨辉三角(20)层:
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
1 16 120 560 1820 4368 8008 11440 12870 11440 8008 4368 1820 560 120 16 1
1 17 136 680 2380 6188 12376 19448 24310 24310 19448 12376 6188 2380 680 136 17 1
1 18 153 816 3060 8568 18564 31824 43758 48620 43758 31824 18564 8568 3060 816 153 18 1
1 19 171 969 3876 11628 27132 50388 75582 92378 92378 75582 50388 27132 11628 3876 969 171 19 1