สร้างสามเหลี่ยมของ Pascal ที่เป็นรายการซ้อนกันและมีค่าศูนย์ในจุดที่ไม่ได้ใช้
ในอาร์เรย์ผลลัพธ์ตัวเลขของสามเหลี่ยมของ Pascal จะถูกคั่นด้วยศูนย์และเติมด้วยศูนย์ในแต่ละด้านเพื่อให้อยู่กึ่งกลาง ตัวอย่างเช่นแถวด้านล่าง (อาร์เรย์ย่อยสุดท้าย) ต้องไม่มีเลขศูนย์ทางซ้ายและขวา อาร์เรย์ย่อยที่สองมีการเว้นศูนย์หนึ่งครั้งในแต่ละด้านและอื่น ๆ
นี่คือเอาต์พุตสำหรับอินพุต5
:
[[0,0,0,0,1,0,0,0,0],
[0,0,0,1,0,1,0,0,0],
[0,0,1,0,2,0,1,0,0],
[0,1,0,3,0,3,0,1,0],
[1,0,4,0,6,0,4,0,1]]
ตามปกติการแก้ปัญหาด้วยไบต์ที่น้อยที่สุดชนะ
print("def pascal(n):\n #make the nested list\n a=[[0 for i in range(2*n+1)] for j in range(n+1)] #make the list\n a[0][n]=1 #add the initial 1\n for i in range(1,n+1):\n for j in range(2*n+1):\n a[i][j]=a[i-1][j-1]+a[i-1][(j+1)%(2*n+1)] #the main part\n return a")