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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Triangle {
        public static void main(String[] args) {
                //a[i][j] = a[i-1][j-1] + a[i-1][j]
                int n = 10;
               
                /*生成杨辉三角,用二维数组,但空间利用率只有1/2*/
                int[][] a = new int[n][n];
                for(int i=0; i<n; i++) {
                        for(int j=0; j<n; j++) {
                                if(i<2) {
                                        a[i][j] = 1;
                                } else{
                                        if(j == 0 || j == i) {
                                                a[i][j] = 1;
                                        } else {
                                                a[i][j] = a[i-1][j-1] + a[i-1][j];
                                        }
                                }
                        }
                }
                printArr(a);
        }
        public static void printArr(int[][] a) {
                for(int i=0; i<a.length; i++) {
                        for(int j=0; j<=i; j++) {
                                System.out.print(a[i][j] + " ");
                        }
                        System.out.println();
                }
        }
}

评分

参与人数 1黑马币 +20 收起 理由
ppaapc + 20 赞一个!

查看全部评分

6 个回复

倒序浏览
挺不错的 字词一下
回复 使用道具 举报
表示看不懂·
回复 使用道具 举报
看就感觉要走的路还
回复 使用道具 举报
表示什么是杨辉三角都不知道
回复 使用道具 举报
loop 发表于 2016-5-19 20:41
表示什么是杨辉三角都不知道

http://baike.so.com/doc/5391358-5628080.html
你有必要看一下
回复 使用道具 举报
换个算法看看
  1. import java.util.Scanner;

  2. /**
  3. * 杨辉三角
  4. *
  5. * @author Administrator
  6. *
  7. */
  8. public class YH3J {
  9.         public static void main(String[] args) {
  10.                 System.out.print("输入层数:");
  11.                 Scanner sc = new Scanner(System.in);
  12.                 int n = sc.nextInt() + 1;
  13.                 int[][] a = new int[n][n];
  14.                 a = work(a, n - 1);

  15.                 printArray(n, a);
  16.         }

  17.         /*
  18.          * 杨辉三角算法
  19.          */
  20.         public static int[][] work(int[][] a, int n) {
  21.                 a[n][0] = 1;
  22.                 for (int i = 1; i < n; i++) {
  23.                         a[n][i] = work(a, n - 1)[n - 1][i - 1] + work(a, n - 1)[n - 1][i];
  24.                 }
  25.                 return a;
  26.         }

  27.         /*
  28.          * 遍历数组
  29.          */
  30.         public static void printArray(int n, int[][] a) {
  31.                 for (int i = 0; i < n; i++) {
  32.                         for (int j = 0; j < i; j++) {
  33.                                 System.out.print(a[i][j] + "\t");
  34.                         }
  35.                         System.out.println();
  36.                 }
  37.         }
  38. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马