java使用一维数组输出杨辉三角形

题目:打印出杨辉三角形的前十行,杨辉三角形前几行如下排列:

1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1 
java代码实现:

public class YangHui {
	public static void main(String[] args) {
		int[] uprowData = new int[10];// uprowData用于保留上一行的数据
		//i表示当前打印的行数
		for (int i = 1; i <= 10; i++)
			// j表示当前打印行的列数
			for (int j = 0; j < i; j++) {
				//当列数为第一列时
				if (j == 0) {
					//当前行数为第一行
					if (i == 1) {
						System.out.println("1 ");
					} else {
						System.out.format("%-5s", "1");
					}
					//保留当前行第一个数据1
					uprowData[0] = 1;
					continue;
				}
				//当列数为最后一列时
				if (j == i - 1) {
					//最后一列打印字符1
					System.out.println("1 ");
					
					//数组右移一位
					for (int k = j - 1; k > 0; k--) {
						
						uprowData[k] = uprowData[k - 1];
					}
					//第一列和最后一列的值均为1
					uprowData[0] = uprowData[j] = 1;
					break;
				}
				
				System.out.format("%-5s", uprowData[j - 1] + uprowData[j]);
				uprowData[j - 1] = uprowData[j - 1] + uprowData[j];
		}
	}
}

输入:

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 


你可能感兴趣的:(java使用一维数组输出杨辉三角形)