帕斯卡三角形,用 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