杨辉三角:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
方法一:
杨辉三角的性质:
1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。
2、第n行的数字个数为n个。
3、第n行数字和为2^(n-1)。
4、每个数字等于上一行的左右两个数字之和。
- class Triangle01
- {
- public static void main(String[] args)
- {
- int size = 5;
- int[][] arr = new int[size][size];
- for (int i = 0; i < size ; i++ )
- {
- for ( int k = i; k < size-1 ; k++ )
- {
- System.out.print(" ");
- }
- for (int j = 0; j <= i ; j++ )
- {
- if (j == 0 || j == i)
- {
- arr[i][j] = 1;
- System.out.print(arr[i][j]+" ");
- }
-
- if ( i > 1 && j != 0 && i > j )
- {
- arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
- System.out.print(arr[i][j]+" ");
-
- }
- }
- System.out.println();
- }
- }
- }
复制代码
方法二:
与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理
二项式定理的公式为:(a+b)^n=C(n,0)a^n*b^0+C(n,1)a^(n-1)*b^1+...+C(n,r)a^(n-r)*b^r...+C(n,n)a^0*b^n
杨辉三角形同时对应于二项式定理的系数。n次的二项式系数对应杨辉三角形的n + 1行。例如在中,2次的二项式正好对应杨辉三角形第3行系数1 2 1。
- class Triangle
- {
- public static void main(String[] args)
- {
- int size = 5;
- int[][] arr = new int[size][size];
- for ( int i = 0; i < size ; i++ )
- {
- for ( int k = i; k < size-1 ; k++ )
- {
- System.out.print(" ");
- }
- for ( int j = 0; j <= i ; j++ )
- {
- arr[i][j] = ArrShow(i,j);
- System.out.print(arr[i][j]+" ");
- }
- System.out.println();
- }
- }
- public static int ArrShow(int i, int j){
-
- int value = conbinations(i,j);
- return value;
- }
- public static int conbinations(int n,int r){//计算二项式系数
- if (n >= 0 && r>= 0){
- int x = Permutations(n);
- int y = Permutations(r);
- int z = Permutations(n - r);
- int conb = x / (y * z);
- return conb;
- }else{
- System.out.println("您输入的数字有误");
- }
- return 0;
- }
-
- public static int Permutations(int n){//计算全排列
- int s=1;
- for (int i = 1; i <= n ; i++)
- {
- s *= i;
- }
- return s;
- }
- }
复制代码
|