Pascal's triangle: Difference between revisions

Keep the same logic but add code to display the triangle in a nicer way.
(Keep the same logic but add code to display the triangle in a nicer way.)
Line 3,682:
 
=={{header|Nim}}==
<lang nim>import sequtils, strutils
 
proc pascalprintPascalTriangle(n: int) =
## Print a Pascal triangle.
var row = @[1]
for r in 1..n:
echo row
row = zip(row & @[0], @[0] & row).mapIt(int, it[0] + it[1])
 
# Build the triangle.
pascal(10)</lang>
var triangle: seq[seq[int]]
triangle.add @[1]
for r_ in 1..<n:
row =triangle.add zip(rowtriangle[^1] & @[0], @[0] & rowtriangle[^1]).mapIt(int, it[0] + it[1])
 
# Build the lines to display.
let length = len($max(triangle[^1])) # Maximum length of number.
var lines: seq[string]
for row in triangle:
lines.add row.mapIt(($it).center(length)).join(" ")
 
# Display the lines.
let lineLength = lines[^1].len # Length of largest line (the last one).
for line in lines:
echo line.center(lineLength)
 
printPascalTriangle(10)</lang>
 
{{out}}
<pre> 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 </pre>
 
=={{header|OCaml}}==
Anonymous user