Треугольник Паскаля на ArrayList

263
03 августа 2017, 23:16

Рабочий вариант. Важно, что c = 1 в начале цикла для заполнения строк.
Формула c = c * (i - j + 1) / j для определения значения элемента треугольника верна.

    Scanner in = new Scanner(System.in);
    System.out.print("Enter n - number of rows in Pascal triangle: ");
    int n = in.nextInt();
    ArrayList<ArrayList<Integer>> triangle = new ArrayList<ArrayList<Integer>>(n);
    // allocate rows
    for (int i = 0; i < n; i++) {
        int c = 1;
        ArrayList<Integer> row = new ArrayList<Integer>();
        // allocate elements
        for (int j = 0; j <= i; j++) {
            if (j == 0 || i == j) {
                row.add(1);
            } else {
                c = c * (i - j + 1) / j;
                row.add(c);
            }
        }
        triangle.add(row);
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j <= i; ++j) {
            System.out.format("%4d", triangle.get(i).get(j));
        }
        System.out.println();
    }

Разбирался по примеру (код ниже) где сделана обычная квадратная матрица.

    int c = 0;
    ArrayList<ArrayList<Integer>> arrayList = new ArrayList<ArrayList<Integer>>();
    for (int i = 0; i < 10; i++) {
        ArrayList<Integer> row = new ArrayList<Integer>();
        for (int j = 0; j < 10; j++) {
            row.add(c);
            ++c;
        }
        arrayList.add(row);
    }
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; ++j) {
            System.out.format("%"+"3d", arrayList.get(i).get(j));
        }
        System.out.println();
    }

Спасибо за комментарии! Изначально ошибся с инициализацией первого элемента с в строке.

READ ALSO
Database Migration using Java

Database Migration using Java

Всем привет! Нужна помощь в принятии решения, заранее спасибо! Задача состоит в том, что нужно разработать инструмент(сервис) для миграции...

215
AsyncTask падает при парсинге html страницы

AsyncTask падает при парсинге html страницы

Суть приложения такова, что я ввожу какие-то символы, которыми дополняются определенный url и с этого url уже идет парсинг нужных мне значенийПри...

207
Проблема с Apache camel jaxb marshalling

Проблема с Apache camel jaxb marshalling

Добрый деньЧитаю Camel in Action, там есть пример маршаллинга в xml с помощью jaxb Spring XML

251
Django - 500 Internal Server Error в ajax post request

Django - 500 Internal Server Error в ajax post request

Всем доброго времени суток

277