Lah numbers: Difference between revisions

Content added Content deleted
(→‎{{header|VBScript}}: Section added)
Line 1,553: Line 1,553:
(164 digits, k=10)
(164 digits, k=10)
</pre>
</pre>

=={{header|VBScript}}==
{{trans|BBC BASIC}}
<lang vb>' Lah numbers - VBScript
' cscript /nologo "Lah numbers - rc.vbs"

Function F(i,n)
Dim c: c=CCur(i): If n>Len(c) Then F=Space(n-Len(c))&c Else F=c
End Function 'F

Function Fact(ByVal n)
Dim res
If n=0 Then
Fact = 1
Else
res = 1
While n>0
res = res*n
n = n-1
Wend
Fact = res
End If
End Function 'Fact
Function Lah(n, k)
If k=1 Then
Lah = Fact(n)
ElseIf k=n Then
Lah = 1
ElseIf k>n Then
Lah=0
ElseIf k < 1 Or n < 1 Then
Lah = 0
Else
Lah = (Fact(n) * Fact(n-1)) / (Fact(k) * Fact(k-1)) / Fact(n-k)
End If
End Function 'Lah
Sub Main()
ns=12: p=10
WScript.Echo "Unsigned Lah numbers: Lah(n,k):"
buf = "n/k "
For k=1 To ns
buf = buf & F(k,p) & " "
Next 'k
WScript.Echo buf
For n=1 To ns
buf = F(n,3) & " "
For k=1 To n
l = Lah(n,k)
buf = buf & F(l,p) & " "
Next 'k
WScript.Echo buf
Next 'n
End Sub 'Main

Main() </lang>
{{out}}
<pre>
Unsigned Lah numbers: Lah(n,k):
n/k 1 2 3 4 5 6 7 8 9 10 11 12
1 1
2 2 1
3 6 6 1
4 24 36 12 1
5 120 240 120 20 1
6 720 1800 1200 300 30 1
7 5040 15120 12600 4200 630 42 1
8 40320 141120 141120 58800 11760 1176 56 1
9 362880 1451520 1693440 846720 211680 28224 2016 72 1
10 3628800 16329600 21772800 12700800 3810240 635040 60480 3240 90 1
11 39916800 199584000 299376000 199584000 69854400 13970880 1663200 118800 4950 110 1
12 479001600 2634508800 4390848000 3293136000 1317254400 307359360 43908480 3920400 217800 7260 132 1
</pre>



=={{header|Visual Basic .NET}}==
=={{header|Visual Basic .NET}}==