पास्कल का त्रिभुज द्विपद गुणांकों का एक ऐरे है। शीर्ष पंक्ति को 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
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे।
- for i := 0 to n
- for j = 0 to n - i - 2, प्रिंट ब्लैंक स्पेस
- for j := 0 to 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; //दी गई संख्या का फैक्टोरियल
}
long nCr(long n, long r){
long nume = 1, i;
for(i = n; i > r; i--)
nume *= i;
return long(nume/fact(n-r)); //nCr का परिणाम उत्पन्न करें
}
void genPascalsTriangle(long n){
for(int i = 0; i < n; i++){
for(int j = 0; j < (n-i-1); j++)
cout << setw(3) << " ";//त्रिकोणीय रूप दिखाने के लिए स्पेस प्रिंट करना
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