Pascal's triangle: Difference between revisions
Content added Content deleted
(Added C variant (adding previous row values).) |
(Added XPL0) |
||
Line 2,322: | Line 2,322: | ||
Ins_Newline |
Ins_Newline |
||
}</lang> |
}</lang> |
||
=={{header|XPL0}}== |
|||
<lang XPL0>include c:\cxpl\codes; |
|||
proc Pascal(N); \Display the first N rows of Pascal's triangle |
|||
int N; \if N<=0 then nothing is displayed |
|||
int Row, I, Old(40), New(40); |
|||
[for Row:= 0 to N-1 do |
|||
[New(0):= 1; |
|||
for I:= 1 to Row do New(I):= Old(I-1) + Old(I); |
|||
for I:= 1 to (N-Row-1)*2 do ChOut(0, ^ ); |
|||
for I:= 0 to Row do |
|||
[if New(I)<100 then ChOut(0, ^ ); |
|||
IntOut(0, New(I)); |
|||
if New(I)<10 then ChOut(0, ^ ); |
|||
ChOut(0, ^ ); |
|||
]; |
|||
New(Row+1):= 0; |
|||
I:= Old; Old:= New; New:= I; |
|||
CrLf(0); |
|||
]; |
|||
]; |
|||
Pascal(13)</lang> |
|||
Output: |
|||
<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 |
|||
1 10 45 120 210 252 210 120 45 10 1 |
|||
1 11 55 165 330 462 462 330 165 55 11 1 |
|||
1 12 66 220 495 792 924 792 495 220 66 12 1 |
|||
</pre> |