帕斯卡三角形,用 C++ 打印
帕斯卡三角形是由二项式系数组成的数组。第一行标为 n = 0,每一行从左侧开始标号,从 k = 0 开始。每个数字的求法是将前一行中恰好位于当前单元格正上方的两个数字相加。也可以通过计算行号为 n 和列号为 k 的 (𝑛𝑘) 来生成三角形。
假设输入是 10,则输出将类似于 −
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1
为此,我们将遵循以下步骤。
- 对于 i := 0 至 n
- 对于 j = 0 至 n – i – 2,打印黑色空格
- 对于 j := 0 至 i,执行 nCr(i, j)
让我们看以下实现以获得更好的理解 −
示例(C++)
#include<iostream>
#include<iomanip>
using namespace std;
long fact(long n){
int i, fact = 1;
for(i = n; i>1; i--)
fact *= i;
return fact;//factorial of given number
}
long nCr(long n, long r){
long nume = 1, i;
for(i = n; i>r; i--)
nume *= i;
return long(nume/fact(n-r));//generate result of nCr
}
void genPascalsTriangle(long n){
for(int i = 0; i<n; i++){
for(int j = 0; j<(n-i-1); j++)
cout <<setw(3)<< " ";//printing space to show triangular form
for(int j = 0; j<(i+1); j++)
cout <<setw(3)<< nCr(i, j) <<setw(3)<< " ";
cout << endl;
}
}
main(){
int n;
cout << "Enter Number of lines: "; cin >> n;
genPascalsTriangle(n);
}输入
10
输出
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP