racket/collects/tests/mzscheme/nch.ss
2005-05-27 18:56:37 +00:00

31 lines
445 B
Scheme

(define (fact n)
(if (zero? n)
1
(* n (fact (- n 1)))))
(define f1000 (fact 1000))
(define (divall n d)
(if (<= n 1)
d
(divall (/ n d) (+ 1 d))))
(define (nch n c)
(/ (fact n) (fact (- n c)) (fact c)))
(define (snch n)
(letrec ((loop
(lambda (i)
(if (> i n)
0
(+ (nch n i) (loop (+ i 1)))))))
(loop 0)))
(define (fsum n)
(if (zero? n)
1
(+ (fact n) (fsum (- n 1)))))