Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

สามเหลี่ยมปาสกาลใน C++


สามเหลี่ยมของ Pascal เป็นอาร์เรย์ของสัมประสิทธิ์ทวินาม แถวบนสุดจะมีหมายเลขเป็น 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#include
using เนมสเปซ std;long fact(long n){ int i, fact =1; สำหรับ(i =n; i>1; i--) ข้อเท็จจริง *=i; return fact;//factorial ของจำนวนที่กำหนด}long nCr(long n, long r){ long nume =1, i; for(i =n; i>r; i--) nume *=i; return long(nume/fact(nr));// สร้างผลลัพธ์ของ nCr}void genPascalsTriangle(long n){ for(int i =0; i> น; 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