一、前言
要用Java写杨辉三角,那么什么是杨辉三角呢?如下图所示:
1 |
二、杨辉三角的规律
1、第几行就有几个数字。
2、每行的开头和结尾都为1。
用二维数组表示为a[i][0]=1;a[i][j]=1(当i=j时);
3、第n+1行的第i个数字等于第n行的第i-1个数字加上第n行的第i个数字
二维数组表示为
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
三、代码部分
1、先定义一个长度为10的数组,然后向数组中遍历二维数组的值。其代码如下:
// 定义一个长度为10的二维数组
int[][] Array_int = new int[10][];
// 向数组中记录杨辉三角形的值
for (int i = 0; i < Array_int.length; i++) {// 遍历行数
Array_int[i] = new int[i + 1];// 定义二维数组的列数
2、 如果是数组的前两行,则值都为1。
if (i <= 1) {// 如果是数组的前两行
Array_int[i][j] = 1;// 将其设置为1
3、如果是行首或者是行尾,它的值也是1.即a[i][0]=1;a[i][j]=1(当i=j时);
其他情况则为 a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
if (j == 0 | j == Array_int[i].length - 1) {
Array_int[i][j] = 1;// 将其设置为1
}
else {// 根据杨辉算法进行计算
Array_int[i][j] = Array_int[i - 1][j - 1] + Array_int[i - 1][j];
}
四、完整代码
public class YangHui {
public static void main(String[] args) {
int[][] Array_int = new int[10][];
for (int i = 0; i < Array_int.length; i++) {
Array_int[i] = new int[i + 1];
for (int j = 0; j < Array_int[i].length; j++) {
if (i <= 1) {
Array_int[i][j] = 1;
continue;
} else {
if (j == 0 | j == Array_int[i].length - 1)
Array_int[i][j] = 1;
else
Array_int[i][j] = Array_int[i - 1][j - 1] + Array_int[i - 1][j];
}
}
}
for (int i = 0; i < Array_int.length; i++) {
for (int j = 0; j < Array_int[i].length; j++)
System.out.print(Array_int[i][j] + "\t");
System.out.println();
}
}
}