Треугольник паскаля (таблица биноминальных коэффициентов)

Hukutka
Дата: 23.09.2014 17:05:58
Друзья, столкнулся с проблемой, написал программку для вычисления треугольника паскаля для произвольного числа строк (кол-во задается пользователем). Но никак не могу сообразить как вывести на экран именно пирамиду, а не начиная с левого края.
Вот мой код, подскажите, пожалуйста, что здесь добавить.
#include <iostream>

using namespace std;

double Cnk(int N,int K)
{
  double Sum = 1;
  for (int i = 1; i <= K; i++)
    Sum*=(N-i+1)/float(i);
  return Sum;
}

int main()
{
    int n;
    cin>>n;

for (int j = 0; j <= n; j++)
    {
        for (int i=0; i <=j ; i++)
        cout<<Cnk(j,i)<<" ";
        cout<<"\n";
    }
    std::cin.get();
    std::cin.get();

    return 0;
}
mayton
Дата: 23.09.2014 17:13:35
Hukutka, не читал твою программу. Сходу две ошибки.

1) Треугольник Паскаля - целочисленный. Это важно. Double/Float использовать нельзя.

2) Смысл рисования треугольника Паскаля в 99% обучающих задач и лабораторных - это
рекуррентная формула которая описывает n(i,j) через n(i-1,j), n(i,j-1).

Прямая формула с циклами которую ты использовал - избыточна и не нужна. В этом также
суть расчёта диагоналей треугольника паскаля и заполнения коэффициентов бинома Ньютона
которые обычно используются в сабже.
Mozok
Дата: 23.09.2014 20:04:41
Hukutka
Но никак не могу сообразить как вывести на экран именно пирамиду, а не начиная с левого края.

Можно добавлять отступы пробелами. Для m-ой строки нужно n-m пробелов.
mayton
Дата: 23.09.2014 20:29:31
Нужно вычислить середину экрана в текстовом представлении. И рисовать нечто вроде.

                             1
                            1 1
                           1 2 1
MasterZiv
Дата: 23.09.2014 23:04:59
я могу предложить рисовать треугольник "лежащим набоку"


1
1
2 1
1
1

Может, будет легче.

Ещё трюк -- можно создать описывающую треугольник матрицу, заполнить всё нулями,
а потом вставить туда треугольник (или сразу там его генерировать), а потом будет выводить легче -- строго прямоугольник.
Хотя может быть и бредовые идеи.