牛客算法基础noob51 杨辉三角

描述
杨辉三角形(又称帕斯卡三角形)的第i+1行对应二项式展开式(a+b)^i的系数。其特点是任意位置的元素等于上一行同列元素与上一行前一列元素之和。

以下展示前4行示例:
1
1 1
1 2 1
1 3 3 1

输入要求:
给定一个正整数n(1 ≤ n ≤ 34),输出前n行杨辉三角形。

输入格式:
在一行中输入整数n

输出格式:
从第一行开始逐行输出,数字间用单个空格分隔,行末不得有多余空格。

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
//下面数组确定有多少行,但不确定有多少列,这种写法适合每行长度不同的场景,后续可以根据需要为每行分配不同的长度
        int[][] arr = new int[n][];
        //构建杨辉三角
        for(int i = 0;i<n;i++){//遍历每一行
        //第i行(从0开始计数)有i+1个元素,所以我们先创建行
            //初始化第一行,长度为i+1
            arr[i] = new int[i+1];
            //控制每行的第一个元素为1
            arr[i][0]  = 1;
            //每行的最后一个元素为1
            arr[i][i] = 1;
        //计算中间元素:等于上一行同列元素与上一行前一列元素之和
        //j = 1:从第 2 个元素开始(跳过第一个元素,因为它固定为 1)
        //j < i:循环到当前行的倒数第二个元素结束(跳过最后一个元素,因为它也固定为 1)
            for(int j = 1;j<i;j++){
                //当前行第 j 列的元素 = 上一行第 j-1 列的元素 + 上一行第 j 列的元素
                arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
            }
        }
        //输出杨辉三角
        for(int i=0;i<n;i++){
            for(int j = 0;j<=i;j++){
                System.out.print(arr[i][j]);
                //除了最后一个元素,其他元素后加空格
                if(j<i){
                    System.out.print( " " );
                }
            }
            System.out.println();
        }
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值