; IPSC 2000, program solving data set E1 written in Scheme

; Recursive function that computes (n choose k) 
(define (n-choose-k n k)
   (if (= k 0)     
       1             ; base case (n choose 0)=1
       (/ (* (n-choose-k n (- k 1)) (+ (- n k) 1)) k)))
                     ; else use formula 
                     ; (n choose k) = (n choose k-1) * (n-k+1) / k 

;compute the answer to our question
(n-choose-k 300 50)