为了账号安全,请及时绑定邮箱和手机立即绑定

我正在尝试生成列表列表以返回帕斯卡三角形

我正在尝试生成列表列表以返回帕斯卡三角形

慕婉清6462132 2022-07-14 09:31:32
我正在尝试使用 11 的幂来生成帕斯卡的三角形,但它只能工作到 4 并且在 4 之后需要修改代码以实现三角形的进一步部分。任何答案的线索(如果可能通过这种方法)表示赞赏。class Solution {    public List<List<Integer>> generate(int numRows) {        List<List<Integer>> a = new ArrayList<List<Integer>>();        for (int i = 0; i < numRows; i++) {            List<Integer> b = new ArrayList<Integer>(i);            int c = (int) (Math.pow(11, i));            while (c > 0) {                int d = c % 10;                b.add(d);                c = c / 10;            }            a.add(b);        }        return a;    }}
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

可悲的是,11 的力量一直到第 5 行,并且由于重组而结束(有一个 10 所以它“携带”)。

例如:期望 11^5 = 1|5|10|10|5|1 但我们得到 11^5 = 161051

您可以按照不同的方法打印帕斯卡三角形。


查看完整回答
反对 回复 2022-07-14
?
青春有我

TA贡献1784条经验 获得超8个赞

您正在ArrayList以相反的顺序添加数字,因此在将内部列表添加到外部之前,只需将其反转。


while (c > 0) {

    int d = c % 10;

    b.add(d);

    c = c / 10;

}

Collections.reverse(b);

a.add(b);


查看完整回答
反对 回复 2022-07-14
  • 2 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号