Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Треугольник паскаля (таблица биноминальных коэффициентов) / 5 сообщений из 5, страница 1 из 1
23.09.2014, 17:05
    #38755022
Hukutka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник паскаля (таблица биноминальных коэффициентов)
Друзья, столкнулся с проблемой, написал программку для вычисления треугольника паскаля для произвольного числа строк (кол-во задается пользователем). Но никак не могу сообразить как вывести на экран именно пирамиду, а не начиная с левого края.
Вот мой код, подскажите, пожалуйста, что здесь добавить.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
#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;
}
...
Рейтинг: 0 / 0
23.09.2014, 17:13
    #38755035
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник паскаля (таблица биноминальных коэффициентов)
Hukutka, не читал твою программу. Сходу две ошибки.

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

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

Прямая формула с циклами которую ты использовал - избыточна и не нужна. В этом также
суть расчёта диагоналей треугольника паскаля и заполнения коэффициентов бинома Ньютона
которые обычно используются в сабже.
...
Рейтинг: 0 / 0
23.09.2014, 20:04
    #38755211
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник паскаля (таблица биноминальных коэффициентов)
HukutkaНо никак не могу сообразить как вывести на экран именно пирамиду, а не начиная с левого края.

Можно добавлять отступы пробелами. Для m-ой строки нужно n-m пробелов.
...
Рейтинг: 0 / 0
23.09.2014, 20:29
    #38755227
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник паскаля (таблица биноминальных коэффициентов)
Нужно вычислить середину экрана в текстовом представлении. И рисовать нечто вроде.

Код: plaintext
1.
2.
3.
                             1
                            1 1
                           1 2 1
...
Рейтинг: 0 / 0
23.09.2014, 23:04
    #38755329
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник паскаля (таблица биноминальных коэффициентов)
я могу предложить рисовать треугольник "лежащим набоку"

Код: plaintext
1.
2.
3.
4.
5.
1
   1
2     1
   1
1

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

Ещё трюк -- можно создать описывающую треугольник матрицу, заполнить всё нулями,
а потом вставить туда треугольник (или сразу там его генерировать), а потом будет выводить легче -- строго прямоугольник.
Хотя может быть и бредовые идеи.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Треугольник паскаля (таблица биноминальных коэффициентов) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]