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

我正在尝试使用 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;

    }

}


慕婉清6462132
浏览 63回答 2
2回答

长风秋雁

可悲的是,11 的力量一直到第 5 行,并且由于重组而结束(有一个 10 所以它“携带”)。例如:期望 11^5 = 1|5|10|10|5|1 但我们得到 11^5 = 161051您可以按照不同的方法打印帕斯卡三角形。

青春有我

您正在ArrayList以相反的顺序添加数字,因此在将内部列表添加到外部之前,只需将其反转。while (c > 0) {&nbsp; &nbsp; int d = c % 10;&nbsp; &nbsp; b.add(d);&nbsp; &nbsp; c = c / 10;}Collections.reverse(b);a.add(b);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java