二维数组之杨辉三角

本文介绍了如何使用Java编程实现经典的杨辉三角形,探讨其排列规律及其在组合数学中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

杨辉三角

二维数组的应用:杨辉三角形
    输出:
    1
    1 1
    1 2 1
    1 3 3 1 
    1 4 6 4 1 
    1 5 10 10 5 1

    分析:
        1)行数和列数:都是6 ----->数据可以采用键盘录入!	
                    二维数组的定义格式:
                        格式1:int[][] arr = new int[num][num] ;

        2)任何一行的第一列和最后一列都是1
        3)从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和


        键盘录入一个数据:使用二维数组初始化
                外层循环:行数
                内层循环:列数

                int[][] arr = new int[n][n] ;
        给二维数组中的数据赋值(给任何的一列和最后一列赋值) .将定义二维数组遍历
            for(int x =0 ;  x < arr.length ; x ++){
                任何一行的第一列和最后一列都是1
            }


            再次遍历二维数组
                从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和
    注:要符合99乘法表的格式!:
    //导包
    import java.util.Scanner ;
    class Array2Test{
        public static void main(String[] args){

            //创建键盘录入对象
            Scanner sc = new Scanner(System.in) ;

            //提示并接收数据
            System.out.println("请您输入一个数据:") ;
            int n = sc.nextInt() ;

            //定义二维数组,动态初始化
            int[][] arr = new int[n][n] ;

            //给二维数组中的数据赋值(给任何的一列和最后一列赋值) 
            //将定义二维数组遍历
            for(int x = 0 ; x < arr.length ; x ++){
                //赋值 
                //任何的一列和最后一列都是1
                arr[x][0] = 1 ;
                arr[x][x] = 1 ;
            }


            //第三行开始遍历
            //从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和
            for(int x = 2 ;x < arr.length ; x ++){
                //内层循环
                /*
                    y从1开始, 当前任何一行的第一列已经赋值1
                    y<=x-1 : 最后一列也赋值为1
                */
                for(int y = 1 ; y <=x -1; y ++){
                    //中间的数据的值等于上一行的前一列+上一行的本列之和
                    arr[x][y] = arr[x-1][y-1] + arr[x-1][y] ;

                }
            }


            //输出:查看当前是否赋值了
            //遍历二维数组//输出结果
            /*
            for(int x = 0 ; x < arr.length ; x ++){
                for(int y = 0 ; y < arr[x].length ; y ++){
                    System.out.print(arr[x][y] +"\t") ;
                }
                System.out.println() ;
            }
            */
            //跟99乘法表规律:y的角标值 y<=x 的值
            for(int x = 0 ; x < arr.length ; x ++){
                for(int y = 0 ; y <=x ; y ++){ //x = 0 (第一行), y=0(第一列)  ,y<=1(0,1)
                    System.out.print(arr[x][y] +"\t") ; //arr[0][0] arr[1][1]
                }
                System.out.println() ;
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值