1.题目
输出杨辉三角(等腰+直角)
2.分析
观察规律 我们用 二维数组arr[i][j] i表示的是行 j表示的是列
(1).首先来看 直角三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
a.明显可以看出来第一列都是1,并且每一行的最后一个也是 1(想象成矩阵 就是 a00 a11 a22)
咱们用代码表示 就是arr[i][0]=1 arr[i][j]=1;
b.我们观察 其他元素 都是 上一层的元素的正对着的上一行元素跟上一行元素左边的和
咱们用代码表示 就是arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
c.输出就是两层for循环 注意判断一下元素是否为0
(2)等腰三角形
与直角三角形相比就是输出 有点不同
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
等腰的输出就是 在输出元素的时候先用空格填充 填充的个数是 正是行数减去当前行号
3.代码展示(代码复制可直接运行)
import java.util.Scanner;
public class _03 {
static void yangHuiTriangle(int n){
int arr[][]=new int [n][n];
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{
System.out.println("ss");
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
}
//直角输出
for(int i=0;i<arr.length;i++){
System.out.println("");
for(int j=0;j<=i;j++){
if(arr[i][j]!=0){
System.out.print(arr[i][j]+" ");
}
}
}
//等腰输出
for(int i=0;i<arr.length;i++){
System.out.println("");
for(int k=i;k<n;k++){
System.out.print("@"); //代替空格 规律更加明显
}
for(int j=0;j<=i;j++){
if(arr[i][j]!=0){
System.out.print(arr[i][j]+" ");
}
}
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
yangHuiTriangle(n);
}
}