神刀安全网

打印杨辉三角详解(一)

1.杨辉三角部分性质

打印杨辉三角详解(一)

图片.png

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

2.思路介绍(JAVA为例)

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

打印杨辉三角详解(一)

图片.png

2.打印出如下

打印杨辉三角详解(一)

图片.png

3.代码详解

i. 首先实例化一个数组
注意:每行的列数都不要相同,因为数组初始化为0,打印效果不好

        int shu=6;//行数,列数         int[][] shuzu = new int[shu][];          for (int i=0;i<shu;i++){//分配每行空间             shuzu[i]=new  int[i+1];//n行有n个数         } 

ii.为数组赋值

  for (int i=0;i<shu;i++){             for (int j=0;j<shu;j++){                 if (i<j){                     j=shu;                     continue;                 }                 try{//每个数等于它肩膀上数的和                     shuzu[i][j]=shuzu[i-1][j]+shuzu[i-1][j-1];                  }catch (Exception e){                     shuzu[i][j]=1;//两边                     continue;                 }             }         } 
  • 因为每一行的列数不同,以防程序终止,当行数小于列数时,退出内层循环,j=shu时为了退出内层循环,数值可随意调节(>=列数)

4.完整代码

 public class Demo15 {     public static void main(String[] args) {         int shu=6;//行数,列数         int[][] shuzu = new int[shu][];          for (int i=0;i<shu;i++){//分配每行空间             shuzu[i]=new  int[i+1];         }          for (int i=0;i<shu;i++){             for (int j=0;j<shu;j++){                 if (i<j){                     j=shu;                     continue;                 }                 try{                     shuzu[i][j]=shuzu[i-1][j]+shuzu[i-1][j-1];                 }catch (Exception e){                     shuzu[i][j]=1;//两边                     continue;                 }             }         }           for (int i=0;i<shu;i++){             for (int k=0;k<shu-1*i;k++){                 System.out.print(" ");             }//每行前空格             for (int j=0;j<2*shu;j++){                  try{                     System.out.print(shuzu[i][j]);                     System.out.print(" ");                 }catch (Exception e){                     continue;                 }               }             System.out.println();         }         for (int i=0;i<shu;i++) {             for (int j=0;j<shu;j++){                 try{                     System.out.print(shuzu[i][j]+" ");                 }catch (Exception e){                     continue;                 }              }             System.out.println();         }     } }  

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 打印杨辉三角详解(一)

分享到:更多 ()