签名:但行好事,莫问前程。
文章目录
前言
记录一下经典的算法-杨辉三角。
一、杨辉三角的概念
特点:
- 第一行有一个元素,第N行有N个元素
- 每一行的第一个元素和最后一个元素都是1
- 从第三行开始,每个数字都等于他上面一排数字和上面一排数字左边的一个数字之和
公式:yanghui[x][y] = yanghui[x - 1][y - 1] + yanghui[x - 1][y]
二、二维数组打印杨辉三角
1、创建二维数组
// 1、创建二维数组
int[][] yangHui = new int[10][];
2、使用for循环,初始化外层元素
for (int i = 0; i < yangHui.length; i++) {
yangHui[i] = new int[i + 1];
}
遍历二维数组模型
for (int i = 0; i < yangHui.length; i++) {
for (int j = 0; j < yangHui[i].length; j++) {
System.out.print(yangHui[i][j] + "\t");
}
System.out.println();
}
打印模型效果:
3、给数组赋值
3.1给数组每行首末元素赋值为1
///2、使用for循环,初始化外层元素
for (int i = 0; i < yangHui.length; i++) {
yangHui[i] = new int[i + 1];
// 3、给数组赋值
// 3.1、给数组每行首末元素赋值为1
yangHui[i][0] = 1;
yangHui[i][i] = 1;
}
打印效果:
3.1给数组每行非首末元素赋值
///2、使用for循环,初始化外层元素
for (int i = 0; i < yangHui.length; i++) {
yangHui[i] = new int[i + 1];
// 3、给数组赋值
// 3.1、给数组每行首末元素赋值为1
yangHui[i][0] = 1;
yangHui[i][i] = 1;
// 3.2、给数组每行非首末元素赋值
for (int j = 1; j < yangHui[i].length - 1; j++) {
yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];
}
}
打印效果:
三、杨辉三角全代码
public class ArrayTest {
public static void main(String[] args) {
// 1、创建二维数组
int[][] yangHui = new int[10][];
///2、使用for循环,初始化外层元素
for (int i = 0; i < yangHui.length; i++) {
yangHui[i] = new int[i + 1];
// 3、给数组赋值
// 3.1、给数组每行首末元素赋值为1
yangHui[i][0] = 1;
yangHui[i][i] = 1;
// 3.2、给数组每行非首末元素赋值
for (int j = 1; j < yangHui[i].length - 1; j++) {
yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];
}
}
// 遍历二维数组模型
for (int i = 0; i < yangHui.length; i++) {
for (int j = 0; j < yangHui[i].length; j++) {
System.out.print(yangHui[i][j] + "\t");
}
System.out.println();
}
}
}
总结
博客主要记录数组打印杨辉三角,有啥错误或不足地方请指正,如果对你有所帮助,请一键三连。