Я пытаюсь сгенерировать список списков, чтобы вернуть треугольник Паскаль - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь сгенерировать треугольник Паскаля, используя степени 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 ]

0 голосов
/ 01 марта 2019

К сожалению, сила 11 работает до 5-й строки и заканчивается прямо там из-за перегруппировки (есть 10, поэтому она «несет»).

Пример: Ожидайте 11 ^5 = 1 | 5 | 10 | 10 | 5 | 1 Но мы получаем 11 ^ 5 = 161051

Вы можете использовать другой подход для печати паскаль треугольника.

Оптимизировать способ нахождения паскальского треугольника:

0 голосов
/ 01 марта 2019

Вы добавляете числа в arraylist в обратном порядке, поэтому перед добавлением внутреннего списка к внешнему просто измените его на обратный.

 while(c>0){
   int d=c%10;
   b.add(d);
   c=c/10;
 }
 Collections.reverse(b);
 a.add(b);
...