C ++:我如何制作' n'帕斯卡的三角线?

时间:2014-11-27 11:59:07

标签: c++ algorithm math binomial-coefficients

这是我的代码:

#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 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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)

答案 2 :(得分:1)

以下是生成Pascal三角形n行的有效方法。

以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;
}

答案 3 :(得分: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