杨辉三角
编程实现
- 思路:用二维数组来报错杨辉三角形的元素
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 … … \begin{matrix} &1\\ &1 &1\\ &1 &2 &1\\ &1 &3 &3 &1\\ &1 &4 &6 &4 &1\\ &…… \end{matrix} 11111……1234136141
边界: a [ i ] [ 0 ] = i , a [ i ] [ i ] = 1 , ∈ [ 1 , n ] a[i][0] = i, a[i][i] = 1,\in[1,n] a[i][0]=i,a[i][i]=1,∈[1,n]
内部: a [ i ] [ j ] = a [ i − 1 ] [ j − 1 ] + a [ i − 1 ] [ j ] , i ∈ [ 2 , n ] , j ∈ [ 1 , i − 1 ] a[i][j] = a[i-1][j-1]+a[i-1][j],i \in[2, n],j\in[1, i-1] a[i][j]=a[i−1][j−1]+a[i−1][j],i∈[2,n],j∈[1,i−1]
- 在
net.zwh.task.t08
中创建Task08
。
package net.zwh.task.t08;
/**
* 功能:打印杨辉三角形
*/
public class Task08 {
public static void main(String[] args) {
// 声明部分
int[][] a = new int[15][];
// 确定每行元素个数与行数一致(第1行1个元素,第2行2个元素,第3行3个元素……第n行n个元素)
// i是从0开始计数,所以计算每行元素时需要在i上加1
for (int i = 0; i < a.length; i++) {
a[i] = new int[i+1];
}
// 编辑赋值
for (int i = 0; i < a.length; i++) {
a[i][0] = 1; // 左边界
a[i][i] = 1; // 右边界
}
// 内部元素采用递推公式计算
for (int i = 2; i < a.length; i++) {
for (int j = 1; j < i; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 输出杨辉三角形
for (int i = 0; i < a.length; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
}
}
-
杨辉三角的数据没有问题,但是格式不好看,需要处理后输出。
-
修改
-
运行程序,查看结果
-
将杨辉三角形显示成等腰三角形