C ++:如何产生帕斯卡三角形的第'n'行? [关闭]
Posted
技术标签:
【中文标题】C ++:如何产生帕斯卡三角形的第\'n\'行? [关闭]【英文标题】:C++: How do I produce the 'nth' line of Pascal's Triangle? [closed]C ++:如何产生帕斯卡三角形的第'n'行? [关闭] 【发布时间】:2014-11-27 11:59:06 【问题描述】:这是我的代码:
#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。
【问题讨论】:
使用二项式系数计算 你刚刚从here复制了别人的代码。在不试图理解它的情况下,您希望人们为您修改它以适应您的家庭作业。如果您确实尝试理解它,您会发现更改是微不足道的。 @interjay:这听起来很糟糕,但我想你是对的。这真的是微不足道的......用户只需去掉外循环:
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;
【讨论】:
完美运行。谢谢!【参考方案2】:将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)
【讨论】:
【参考方案3】:以下是生成帕斯卡三角形的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;
【讨论】:
【参考方案4】:你需要输入第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
【讨论】:
这可行,但由于双循环,效率比可能低一个数量级。以上是关于C ++:如何产生帕斯卡三角形的第'n'行? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章