本帖最后由 地狱天堂 于 2014-8-22 03:24 编辑  
- public class Test4 {
 
  
-         public static void main(String[] args) {
 
 -                 System.out.println("*******从1开始,打印10行********");
 
 -                 getNum(1,10);
 
 -                 System.out.println("*******从2开始,打印5行*******");
 
 -                 getNum(2,5);
 
 -         }
 
 -         
 
 -         //num第一行中间的数字,line=需要打印的行数
 
 -         public static void getNum(int num,int line){
 
 -                 //定义二维需要多长?根据规律2行需要5个,3行需要7个,就定义个lenths=line*2+1的长度。
 
 -                 int lenths=line*2+1;
 
 -                 //定义个二维数组记数
 
 -                 int[][] in=new int[line][lenths];
 
 -                 
 
 -                 //把数字插入到数组第一行中间。
 
 -                 in[0][lenths/2]=num;
 
 -                 
 
 -                 //从第二行开始第n个(不包括第一个和最后一个),等于第一行的(n-1)+(n+1)
 
 -                 for (int i = 1;i < line; i++) {
 
 -                         for (int j = 1; j <lenths-1; j++) {                                
 
 -                                 in[i][j]=in[i-1][j-1]+in[i-1][j+1];
 
 -                         }
 
 -                 }
 
 -                 
 
 -                 //把数组中的0去除,然后打印
 
 -                 StringBuilder str=new StringBuilder();
 
 -                 for (int i = 0; i <line; i++) {
 
 -                         for (int j = 0; j < lenths; j++) {
 
 -                                 if(in[i][j]==0){
 
 -                                         str.append(" ");
 
 -                                         continue;
 
 -                                 }                                
 
 -                                 str.append(in[i][j]);                                
 
 -                         }
 
 -                         str.append("\n");
 
 -                 }
 
 -                 System.out.println(str.toString());
 
 -         }
 
 -         
 
 - }
 
 
  复制代码 
打印结果: 
*******从1开始,打印10行******** 
          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  
*******从2开始,打印5行******* 
     2      
    2 2     
   2 4 2    
  2 6 6 2   
 2 8 12 8 2  
 
 |