1   
  1 1 
 
  1 2 1 
  
  1 3 3 1 
 
  1 4 6 4 1 
 
  1 5 10 10 5 1 
 
  1 6 15 20 15 6 1 
  
  1 7 21 35 35 21 7 1 
  
  1 8 28 56 70 56 28 8 1 
  
  1 9 36 84 126 126 84 36 9 1 
  
  1 10 45 120 210 252 210 120 45 10 1 
  
  1 11 55 165 330 462 462 330 165 55 11 1 显示如上

解决方案 »

  1.   


    int arr[][]=new int[12][12];
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
    arr[i][j]=0;
    }
    }
    for(int i=0;i<arr.length;i++){
    arr[i][0]=1;
    arr[i][1]=i;
    }
    for(int i=1;i<arr.length;i++){
    for(int j=2;j<arr.length;j++){
    arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
    }
    }
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr.length;j++){
    if(arr[i][j]!=0){
    System.out.print(arr[i][j]+"\t");
    }
    }
    System.out.println();
    }
    用了很多for循环,不知怎样优化。
      

  2.   


    public static void main(String args[])
    {
    int arr[][]=new int[12][12];
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
    arr[i][j]=0;
    }
    }
    for(int i=0;i<arr.length;i++){
    arr[i][0]=1;
    arr[i][1]=i;
    }
    for(int i=1;i<arr.length;i++){
    for(int j=2;j<arr.length;j++){
    arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
    }
    }
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr.length;j++){
    if(arr[i][j]!=0){
    System.out.print(arr[i][j]+"\t");
    }
    }
    System.out.println();
    }
         }
      

  3.   

    这样吧,简单些 static void printt(){
    int arr[][]=new int[12][12];
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
    arr[i][j]=0;
    }
    }
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
    arr[i][0]=1;
    arr[i][1]=i;
    if(i!=0&&j!=0){
    arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
    }
    if(arr[i][j]!=0){
    System.out.print(arr[i][j]+"\t");
    }
    }
    System.out.println();
    }
    }
      

  4.   


       public static void print(int RowSize){//要输出的行数
       List<Integer>preList=new ArrayList<Integer>();//上一行集合
       List<Integer>nextList=new ArrayList<Integer>();//下一行集合
       int i=0;
       while(i<RowSize){
       for (int j = 0; j <preList.size()+1; j++) {
      if(j==0){//每行第一个
      System.out.print(1+"\t");
      nextList.add(new Integer(1));
      }else{
      if(j<=i/2){//输出一行前半部分
      int num=preList.get(j-1)+preList.get(j);
      System.out.print(num+"\t");
      nextList.add(new Integer(num));
      }else{//输出一行后半部分
     int num =nextList.get(i-j);//通过对称关系获取对应的值
     nextList.add(num);
     System.out.print(num+"\t");
      }
      }
       }
       preList=nextList;//上一行指针指向下一行
       nextList=new ArrayList<Integer>();//下一行指向新开辟个空间
       System.out.println();
       i++;
       }
       }
      

  5.   


      public static void print(int RowSize){//要输出的行数
               int arrs[][]=new int [RowSize][RowSize];
               for(int i=0;i<arrs.length;i++){
                 for(int j=0;j<=i;j++){
                  if(i==j||j==0){
                  arrs[i][j]=1;
                 
                  }else {
                  arrs[i][j]=arrs[i-1][j-1]+arrs[i-1][j];
                  }
                  System.out.print(arrs[i][j]+"\t");
                 }
                 System.out.println();
                
               }
             /* for (int[] arr : arrs) {
    for(int i:arr){
    if(i!=0){
    System.out.print(i+"\t");
    }
    }
    System.out.println();
    }*/
           }