研究生考试892-2020-3.杨辉三角(直角+等腰)

1.题目

输出杨辉三角(等腰+直角)

2.分析

观察规律 我们用 二维数组arr[i][j]    i表示的是行  j表示的是列

(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);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值