杨辉三角形

在屏幕上显示杨辉三角形
 
                             1
                          1      1
                       1     2      1
                    1     3     3      1
                1      4     6      4     1
             1     5     10     10     5     1
           ......................................
 
*问题分析与算法设计
 杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。
     从杨辉三角形的特点出发,可以总结出:
     1)第N行有N+1个值(设起始行为第0行)
     2)对于第N行的第J个值:(N>=2)
        当J=1或J=N+1时:其值为1
        J!=1且J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值之和
 将这些特点提炼成数学公式可表示为:
       1                              x=1或x=N+1
      c(x,y)=  c(x-1,y-1)+c(x-1,y)        其它
                 
     本程序应是根据以上递归的数学表达式编制的。

public class T10 {

    public static void main(String[] args) {
        
        
        /*
         * 
         * 
         * 1.  每行第一个都是1,第0行的第0个为1
                                        第1行的第1个为1
                                        第2行的第2个为1

           2.  c(x,y)=  c(x-1,y-1)+c(x-1,y)  
               c(2,1)=  c(2-1,1-1)+c(2-1,1)
                 c(3,1)=  c(3-1,1-1)+c(3-1,1);
         * 
         * 
1 0 0 0 0 
1 1 0 0 0 
1 2 1 0 0 
1 3 3 1 0 
1 4 6 4 1 
         * 
         * 
         */
        int i = 5;//用户输入
        
        int x = i;
        int y = i;
        
        int arrays[][] = new int[x][y];
        
        
        for(int  m = 0 ;m < x;m++){
            
            arrays[m][0] = 1; // 每行第一个都是1,第0行的第0个为1
            arrays[m][m] = 1; //  第1行的第1个为1,    第2行的第2个为1
            
        }
        
        for(int a = 2 ;a < x ;a++){//行的遍历
            
            for(int b=1 ; b < a ;b++){ //列的遍历,列数比行数少1;
                
                arrays[a][b] = arrays[a-1][b-1]+arrays[a-1][b]; 
                
            }
            
            
        }
        
        
        //迭代数组,看整个数组结构
        for(int m = 0 ; m < x;m++){
            
            for(int n = 0 ;n < y;n++){
                
                System.out.print(arrays[m][n]+" ");
                
            }
            System.out.println();
            
        }
        
    }
}

 

posted @ 2012-10-19 10:22  邹晟  阅读(184)  评论(0编辑  收藏  举报