✅作者:简单^不简
🔥系列专栏:JavaSE
💖作者也在学习中,如果文章有错误,时刻欢迎大家的指正。当然觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝
💬每日鸡血:学着改变,由内而外
问题:
使用二维数组打印一个10行杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
.......................
分析:
规律:
1.第一行有一个元素,第n行有n个元素
2.第一行的第一个元素和最后一个元素都是1
3.从第三行开始,对于非第一个元素和最后一个元素的值,arr[i][j] = arr[i-1][j]+arr[i-1][j-1]
代码实现:
package Test02;
public class YangHui {
public static void main(String[] args) {
int[][] yangHui = new int[10][];
for (int i= 0; i < yangHui.length; i++) {//遍历yangHui的每个元素
//给每个一维数组开空间
yangHui[i] = new int[i+1];
//给每个一维素组赋值
for (int j = 0; j < yangHui[i].length; j++) {
//每一行第一个元素和最后一个元素都为1
if(j==0||j==yangHui[i].length-1){
yangHui[i][j] = 1;
}else{//中间元素
yangHui[i][j] = yangHui[i-1][j]+yangHui[i-1][j-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();//换行
}
}
}
总结:
能够找到规律是解决这类问题的关键