Вот мой код:
#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-ю строку вместо всего треугольника? ТИА.
Просто удалите внешнюю петлю:
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;
}
+ Изменить 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)
Ниже приведен эффективный способ создания n
3-й ряд треугольника Паскаля.
Начните строку с 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;
}
Вам необходимо ввести значение 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