杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623—-1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。
没有参考网上的代码,自己手撸了一遍杨辉三角。主要依据是根据杨辉三角的特性,行数等于列数乘二加一。输入想要得到的杨辉三角层数,即可得到相应的杨辉三角数字列表。中间的空格直接使用0来表示了,所以感觉我的代码比网上的很多代码简洁了很多:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31//杨辉三角的JAVA实现
class YangHuiSanJiao
{
static void putIn(int m){
int n = m*2-1; //根据杨辉三角特性,行数等于列数乘二加一
int[][] arr = new int[m][n]; //新建数组
arr[0][m-1] = 1;
for ( int i = 0; i < m-2 ; i++ )
{
for ( int j = 0; j < n-2 ; j++ )
{
arr[i+1][j+1] = arr[i][j] + arr[i][j+2]; //将当列的第J个数和第J+2个数,赋值给下一列的J+1个数(因为i和j初始为0)
}
}
for (int i = 0; i < m-1 ; i++ )
{
for (int j = 0; j < n ; j++ )
{
System.out.print(arr[i][j]+ "\t"); //遍历数组,将值逐一打印
}
System.out.println(); //打印换行
}
}
public static void main(String[] args)
{
putIn(10); //输入想要得到的杨辉三角层数
}
}
因为其实可以把整个数组进行遍历,然后通过强制类型转换将0转为空格的,这个还没转。代码以上。