打印杨辉三角详解(一)

1.杨辉三角部分性质

图片.png

a.每行端点与结尾数字为1
b.部分数等于他“肩膀”上数的和
c.第n行有n个数

2.思路介绍(JAVA为例)

分两步1.数组中存储如下


图片.png

2.打印出如下


图片.png

3.代码详解(最下方有完整代码)

i. 首先实例化一个数组

  • 观察思路介绍中步一的数列:
    a.行列相同(以6行为例)
        int row=6;//行数,列数

注意:每行的列数都不要相同,因为数组初始化为0,打印效果不好

      int[][] Pascal_Triangle  = new int[row][];

        for (int i=0;i<row;i++){//分配每行空间
            Pascal_Triangle [i]=new  int[i+1];
        }

ii.为数组赋值

  • 因为每行列数不同,每打印一个数字j++n行打印n个数,当列>行时j>i完成,后直接state=row+1跳出循环
  • 用try catch语句捕获异常,当他肩膀上没有数字时,即为边界数


        for (int i=0;i<row;i++){
            for (int j=0;j<row;j++){
                if (i<j){
                    j=row;
                    continue;
                }
                try{
                    Pascal_Triangle [i][j]=Pascal_Triangle [i-1][j]+Pascal_Triangle [i-1][j-1];
                }catch (Exception e){
                    Pascal_Triangle [i][j]=1;
                    continue;
                }
            }
        }

iii.调整输出

  • 观察下图:(每个数后加了空格)
    A.行数同列翻倍,即n行2n列
    B.第一行所在列为n列,即(1,n)
    C.从第一行往下,没下一行少一空格


    图片.png
for (int i=0;i<row;i++){
            for (int k=0;k<row-1*i;k++){
                System.out.print(" ");
            }//每行前空格
            for (int j=0;j<2*row;j++){

                try{
                    System.out.print(Pascal_Triangle [i][j]);
                    System.out.print(" ");
                }catch (Exception e){
                    continue;
                }


            }
            System.out.println();
        }

4.完整代码


public class Demo15 {
    public static void main(String[] args) {
        int row=6;//行数,列数
        int[][] Pascal_Triangle  = new int[row][];

        for (int i=0;i<row;i++){//分配每行空间
            Pascal_Triangle [i]=new  int[i+1];
        }

        for (int i=0;i<row;i++){
            for (int j=0;j<row;j++){
                if (i<j){
                    j=row;
                    continue;
                }
                try{
                    Pascal_Triangle [i][j]=Pascal_Triangle [i-1][j]+Pascal_Triangle [i-1][j-1];
                }catch (Exception e){
                    Pascal_Triangle [i][j]=1;
                    continue;
                }
            }
        }


        for (int i=0;i<row;i++){
            for (int k=0;k<row-1*i;k++){
                System.out.print(" ");
            }//每行前空格
            for (int j=0;j<2*row;j++){

                try{
                    System.out.print(Pascal_Triangle [i][j]);
                    System.out.print(" ");
                }catch (Exception e){
                    continue;
                }


            }
            System.out.println();
        }
       
    }
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,763评论 0 5
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 4,308评论 2 13
  • 如果没有吃过我的卤鸡爪,那就白来我这了。
    七月奶茶阅读 348评论 0 1
  • 从前的日色变得慢 车马邮件都慢 一生只够爱一个人 从前的锁也好看 钥匙精美有样子 你锁了 人家就懂了 ——《从前慢...
    牛奶咕啾阅读 284评论 0 0
  • 今年年初,我的一个室友说要考研,我全寝室的人都没说话,我稍微应了一句:“哦。”之后她再一次强调,说她要考研。但是按...
    玎町阅读 1,215评论 0 0

友情链接更多精彩内容