题目:打印出杨辉三角形的前十行,杨辉三角形前几行如下排列:
1
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