Erstellen Sie ein Pascal-Dreieck, das eine verschachtelte Liste ist und an den nicht verwendeten Stellen Nullen enthält.
Im Ausgabearray werden die Zahlen des Pascalschen Dreiecks durch Nullen getrennt und auf jeder Seite durch Nullen aufgefüllt, so dass sie zentriert sind. Beispielsweise darf die untere Zeile (letztes Unterarray) links und rechts keine Nullen haben. Das vorletzte Sub-Array hat auf jeder Seite eine Null-Auffüllung und so weiter.
Hier ist die Ausgabe für die Eingabe 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]]
Wie üblich gewinnt die Lösung mit den wenigsten Bytes.
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")