-1

这是我的代码:

#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 行而不是整个三角形?TIA。

4

4 回答 4

7

只需删除外循环:

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;
}
于 2014-11-27T12:25:01.037 回答
1

更改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)
于 2014-11-27T12:00:23.197 回答
1

以下是生成n帕斯卡三角形第 th 行的有效方法。

以 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;
}
于 2014-11-27T12:25:18.303 回答
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;
}

i0
For开始的值i=6

输出将是 1 6 15 20 15 6 1

于 2014-11-27T12:11:49.500 回答