三步使用Java实现杨辉三角

什么是杨辉三角?

杨辉三角就是 一个由数字组成的三角形,并且满足一下规定:

  • 第n行的数字有n项。
  • 每行端点与结尾的数为1。
  • 每个数等于它上方两数之和。
    在这里插入图片描述

如何才能写出一个杨辉三角呢?

首先,我们要解决最重要的三个问题,来组成整个代码的框架:

  • 存储:使用 二维数组 ,列对应第一层数组(索引为 列i),行对应第二层数组(索引为 行j)。
  • 遍历:既然使用了二维数组,那么自然要使用到 两个嵌套的普通for循环
  • 赋值:参考 杨辉三角的特性

其次,我们要需要分析杨辉三角的特性,来完成所有核心代码:

  • 第n行的数字有n项 ——> 遍历条件:当 行j = n 时,列i <= n
  • 每行端点与结尾的数为1 ——> 赋值条件:当 列i = 0或j 时,array[i][j]=1
  • 每个数等于它上方两数之和 ——> 赋值条件:当 列i != 0或j 时,array[i][j]= array[i-1][j-1] + array[i-1][j]

最后,我们可以写出以下代码:

// 存储
int[][] arr = new int[10][10];

// 遍历,并赋值
for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j <= i; j++) {
        if (j == 0 | j == i) {
            arr[i][j] = 1;
        } else {
            arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
        }
    }
}
System.out.println();

// 遍历,并输出
for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j <= i; j++) {
        System.out.print(arr[i][j]+" ");
    }
    System.out.println();
}

输出结果:

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 
发布了76 篇原创文章 · 获赞 3 · 访问量 7617
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览