Imports System
Public Class Pascalls_Triangle
	Public Shared Sub Main()
		'Returns the number at the location inside pascalls triangle
		console.writeline(Pascalls_Return_n_Of_k(4,2))
	End Sub
	
	Public Function Return_Factorial_Of_n(Byval n as Integer)
		'n! = n * (n-1)... * 3 * 2 * 1
		dim nFactorial as uint64 = 1
		for i as uint64 = n  to 1 step -1
			nFactorial *= i
		Next
		Return nFactorial
	End Function

	Public Function Pascalls_Return_n_Of_k(Byval n as int64, Byval k as int64)
		'(n choose k) = n!/k!*(n - k)!
		'Example: n = Row, k = Term
		'      1          - Row(0)
		'     1 1         - Row(1)
		'    1 2 1        - Row(2)
		'   1 3 3 1       - Row(3)
		'  1 4 6 4 1      - Row(4)
		'
		'  ' ' ' ' '
		'  ' ' ' ' Term(4)
		'  ' ' ' Term(3)
		'  ' ' Term(2)
		'  ' Term(1)
		'  Term(0)
		Return (Return_Factorial_Of_n(n) / (Return_Factorial_Of_n(k) * Return_Factorial_Of_n(n-k)))
	End Function
end class