经典题:用Java打印杨辉三角形

导读:本篇文章讲解 经典题:用Java打印杨辉三角形,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

用Java打印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   

思路分析:

找杨辉三角形规律:

(1)第一行1个元素,第二行2个元素,以此类推,第n行n个元素。
(2)每行的第一个和最后一个元素是1。
(3)第三行的第2个元素是第二行第1个元素与第二行第2个元素之和,以此类推,第 i 行的第 j 个元素是第 i-1 行第 j-1 个元素与第 i-1 行第 j 个元素之和。
用二维数组表示:arr[i][j] = arr[i-1][j-1] + arr[i-1][j];

做题步骤:

(1)建立一个二维数组,内部有10个一维数组,但是每个一维数组的元素数量不同。
(2)定义三个变量 i 和 j 表示二维数组的行号与列号,k 表示空格。

int arr[][] = new int[10][];
int i;
int j;
int k;

(3)遍历二维数组。

        for(i = 0; i < arr.length; i++){
            arr[i] = new int[i+1];//表示第i个一维数组的长度为i+1
            for(j = 0; j < arr[i].length; j++){
                arr[i][0] = 1;//每行的第一个元素是1
                arr[i][arr[i].length - 1] = 1;//每行的最后一个元素是1
                if(i > 1 && j > 0 && j < arr[i].length - 1){//从第三行开始,不是第一个和最后一个元素的符合以下规律
                    arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
                }
            }
        }

(4)加入空格输出

        for(i = 0; i < arr.length; i++){
            for(k = 0; k < arr.length - 1 - i; k++){
                System.out.print("  ");
            }
            for(j = 0; j < arr[i].length; j++){
                System.out.print(arr[i][j] + "   ");
            }
            System.out.println();
        }

最终完整版

public class YangHui {
    public static void main(String[] args){
        int arr[][] = new int[10][];
        int i;
        int j;
        int k;
        for(i = 0; i < arr.length; i++){
            arr[i] = new int[i+1];//表示第i个一维数组的长度为i+1
            for(j = 0; j < arr[i].length; j++){
                arr[i][0] = 1;//每行的第一个元素是1
                arr[i][arr[i].length - 1] = 1;//每行的最后一个元素是1
                if(i > 1 && j > 0 && j < arr[i].length - 1){//从第三行开始,不是第一个和最后一个元素的符合以下规律
                    arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
                }
            }
        }
        for(i = 0; i < arr.length; i++){
            for(k = 0; k < arr.length - 1 - i; k++){
                System.out.print("  ");
            }
            for(j = 0; j < arr[i].length; j++){
                System.out.print(arr[i][j] + "   ");
            }
            System.out.println();
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/120196.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!