A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

杨辉三角:
            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、每个数字等于上一行的左右两个数字之和。
  1. class  Triangle01
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int size = 5;
  6.                 int[][] arr = new int[size][size];
  7.                 for (int i = 0; i < size ; i++ )
  8.                 {
  9.                         for ( int k = i; k < size-1 ; k++ )
  10.                         {
  11.                                 System.out.print(" ");
  12.                         }

  13.                         for (int j = 0; j <= i ; j++ )
  14.                         {
  15.                                 if (j == 0 || j == i)
  16.                                 {
  17.                                         arr[i][j] = 1;
  18.                                         System.out.print(arr[i][j]+" ");
  19.                                 }
  20.                                
  21.                                 if ( i > 1 && j != 0 && i > j )
  22.                                 {
  23.                                         arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
  24.                                         System.out.print(arr[i][j]+" ");
  25.                                        
  26.                                 }
  27.                         }
  28.                         System.out.println();
  29.                 }
  30.         }
  31. }
复制代码

方法二:
与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理
二项式定理的公式为:(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。
  1. class Triangle
  2. {
  3.         public static void main(String[] args)
  4.         {       
  5.                 int size = 5;
  6.                 int[][] arr = new int[size][size];
  7.                 for ( int i = 0; i < size ; i++ )
  8.                 {
  9.                         for ( int k = i; k < size-1 ; k++ )
  10.                         {
  11.                                 System.out.print(" ");
  12.                         }
  13.                         for ( int j = 0; j <= i ; j++ )
  14.                         {
  15.                                 arr[i][j] = ArrShow(i,j);
  16.                                 System.out.print(arr[i][j]+" ");
  17.                         }
  18.                         System.out.println();
  19.                 }
  20.         }
  21.                 public static int ArrShow(int i, int j){
  22.        
  23.                 int value = conbinations(i,j);
  24.                 return value;
  25.         }
  26.         public static int conbinations(int n,int r){//计算二项式系数
  27.                 if (n >= 0 && r>= 0){
  28.                         int x = Permutations(n);
  29.                         int y = Permutations(r);
  30.                         int z = Permutations(n - r);
  31.                         int conb = x / (y * z);
  32.                         return conb;
  33.                 }else{
  34.                         System.out.println("您输入的数字有误");
  35.                 }
  36.                 return 0;
  37.         }
  38.        
  39.         public static int Permutations(int n){//计算全排列
  40.                 int s=1;
  41.                 for (int i = 1; i <= n ; i++)
  42.                 {
  43.                         s *= i;
  44.                 }
  45.                 return s;
  46.         }
  47. }
复制代码




评分

参与人数 3黑马币 +4 收起 理由
空城dream + 1 很给力!
明天你好 + 2 赞一个!
进军黑马 + 1

查看全部评分

5 个回复

倒序浏览
哦!原来这就是杨辉三角啊!!!赞,学习学习
回复 使用道具 举报
杨辉三角,好棒。。。
回复 使用道具 举报
顶顶,快乐分享
回复 使用道具 举报
大神好厉害!
回复 使用道具 举报
路过!学习!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马