Алгоритм — C ++: Как мне создать ‘n-ю’ строку треугольника Паскаля?

Вот мой код:

#include <iostream>
using namespace std;

int main()
{
int n,k,i,x;
cout << "Enter a row number for Pascal's Triangle: ";
cin >> n;
for(i=0;i<=n;i++)
{
x=1;
for(k=0;k<=i;k++)
{
cout << x << '\t';
x = x * (i - k) / (k + 1);
}
cout << endl;
}
return 0;
}

Как мне изменить это так, чтобы он отображал только n-ю строку вместо всего треугольника? ТИА.

-1

Решение

Просто удалите внешнюю петлю:

int main()
{
cout << "Enter a row number for Pascal's Triangle: ";
cin >> n;
int x = 1;
for (int k = 0; k <= n; k++)
{
cout << x << '\t';
x = x * (n - k) / (k + 1);
}
cout << endl;
return 0;
}
7

Другие решения

+ Изменить cout << x << '\t'; в

if(i == n) cout << x << '\t';  // Print only last line (i = n)

А также cout << endl; в

if(i == n) cout << endl;  // Print after only last line (i = n)
1

Ниже приведен эффективный способ создания n3-й ряд треугольника Паскаля.

Начните строку с 1, потому что есть 1 способ выбрать 0 элементов.

На следующий срок умножьте на n и делим на 1. Это потому, что есть n способы выбрать 1 пункт.

На следующий срок умножьте на n-1 и разделить на 2. Есть n*(n-1) способов выбрать 2 предмета и 2 способа их заказа.

На следующий срок умножьте на n-2 и разделить на 3. Есть n*(n-1)*(n-2) способы выбрать 3 предмета и 2 * 3 способа их заказать.

И так далее.

Мы останавливаемся после умножения на 1 и деления на n,

#include <iostream>
using namespace std;

int main() {
int n;
cout << "Enter a row number for Pascal's Triangle: ";
cin >> n;
int x = 1;
cout << x;
for (int a = n, b = 1; b <= n; --a, ++b) {
x = x * a / b;
cout << ' ' << x;
}
cout << '\n';
return 0;
}
1

Вам необходимо ввести значение n-й строки

int i =nth Line;
for(k=0;k<=i;k++)
{
count<<fact(i)/(fact(k)*fact(i-k))<<"\t";
}int fact(int a)
{
int j=1;
for(int i=a;i>1;i--)
{
j*=a;
a--;
}
return j;
}

Ценность i начать с 0
За i=6

Выход будет 1 6 15 20 15 6 1

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector