RosettaCodeData/Task/Lah-numbers/FreeBASIC/lah-numbers.basic

36 lines
915 B
Plaintext

function factorial( n as uinteger ) as ulongint
if n = 0 then return 1
return n*factorial(n-1)
end function
function s_Lah( n as uinteger, k as uinteger ) as ulongint
if n = k then return 1
if n = 0 orelse k = 0 then return 0
if k = 1 then return factorial(n)
return ((-1)^n)*(factorial(n)*factorial(n - 1))/(factorial(k)*factorial(k - 1))/factorial(n - k)
end function
function u_Lah( n as uinteger, k as uinteger ) as ulongint
return abs(s_Lah(n,k))
end function
function padto( i as ubyte, j as integer ) as string
return wspace(i-len(str(j)))+str(j)
end function
print "Unsiged Lah numbers"
print
dim as string outstr = " k"
for k as integer =0 to 12
outstr += padto(12, k)
next k
print outstr
print " n"
for n as integer = 0 to 12
outstr = padto(2, n)+" "
for k as integer = 0 to n
outstr += padto(12, u_Lah(n, k))
next k
print outstr
next n