杨辉三角问题

本文介绍了杨辉三角的规律,并提供了使用Java实现杨辉三角的代码。通过动态创建顺序表,根据杨辉三角的特性逐行生成每个元素,首尾元素始终为1,中间元素由上一行相邻元素相加得出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

上图就是一个杨辉三角,根据这个三角形我们可以找出以下几点规律
1.第一行固定就是一个1
2.第二行固定也是两个1
3.第i行的首尾元素都固定是1
4.第i行有i个元素
5.对于第i行来说,除了首尾,第j列的值等于i-1行j-1列的值+i-1行j列的值。
代码:

public class Mypork {
    public static List<List<Integer>> func(int x){
        List<List<Integer>> Result = new ArrayList<>();
        List<Integer> First = new ArrayList<>();
        First.add(1);
        Result.add(First);
        if(x==1){//当这个三角形只有一层的时候,此时直接返回现在的这个大顺序表
            return Result;
        }
        List<Integer> Second = new ArrayList<>();
        Second.add(1);
        Second.add(1);
        Result.add(Second);
        if(x==2){
            return Result;
        }
        for(int j = 3;j<=x;j++){//J代表第几行
            List<Integer> ret = new ArrayList<>();
            List<Integer> prev = Result.get(j-1-1);///需要知道前一行的信息,这里的j是第几行,对应在顺序表中知道前一行应该是j-1-1
            ret.add(1);//在第一列添加一个1
            for(int i = 2;i<j;i++){//i代表第几列
                ret.add(prev.get(i-1-1)+prev.get(i-1));//这里的i同样是第几列,需要知道上一行的i-1列。
            }
            ret.add(1);//在最末尾再添加一个1
            Result.add(ret);//然后把当前行添加到外层顺序表中
        }
        return Result;
    }
    public static void main(String[] args) {
        System.out.println(func(5));
    }
}

思路:首先创建一个顺序表,这个顺序表存放一行行元素组成的顺序表,当只有一层的时候,就直接往里层顺序表添加一个1,然后再把这个顺序表添加到外层顺序表中,当只有两层的时候,就往里层第二个顺序表里面添加两个1,然后再把这个顺序表添加到外层顺序表中。当层数大于2小于等于给定行数的时候,先获取到前一行的信息(*注:这里的行数不是下标,要知道前一行的信息需要把行数转为下标)*然后再在当前行的第一列添加一个1,第i列的值等于前一行中i-1列的值加上i列的值,然后再在末尾添加一个1.这样这一行就全部添加到顺序表中,然后再把这个顺序表添加到外层顺序表中,然后继续循环,知道最后一行添加完。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值