[MD-sorular] 2 tabanında 10! (Common Lisp versiyonu)

Haldun Bayhantopcu hbayhantopcu at gmail.com
29 Nis 2005 Cum 16:00:49 EEST


(defun binary (n)
    (labels ((binary-aux (n)
	       (if (<= n 1)
		   (list n)
		 (cons (mod n 2) (binary-aux (floor (/ n 2)))))))
      (nreverse (binary-aux n))))

(defun binary-with-digit-nums (n)
    (let ((b (binary n)))
      (values b (length b))))

(defun ! (n)
    (labels ((f (n) (if (<= n 1) 1 (* n (f (- n 1))))))
      (f n)))

(defun binary-with-digit-nums (n)
    (let ((b (binary n)))
      (values b (length b))))

10!'in 2 tabanında nasıl yazıldığı ve kaç basamaklı olduğunu öğrenmek
için:

> (binary-with-digit-nums (! 10))
(1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0)
22

-- Haldun


MD-sorular mesaj listesiyle ilgili daha fazla bilgi