18 lines
570 B
Common Lisp
18 lines
570 B
Common Lisp
(defpackage :pizza-pi
|
|
(:use :cl)
|
|
(:export :dough-calculator :pizzas-per-cube
|
|
:size-from-sauce :fair-share-p))
|
|
|
|
(in-package :pizza-pi)
|
|
|
|
(defun dough-calculator (pizzas diameter)
|
|
(round (* pizzas (+ 200 (/ (* 45 3.14159 diameter) 20)))))
|
|
|
|
(defun size-from-sauce (sauce)
|
|
(sqrt (/ (* 40 sauce) (* 3 3.14159))))
|
|
|
|
(defun pizzas-per-cube (cube-size diameter)
|
|
(floor (* (expt cube-size 3) 2) (* 3 3.14159 (expt diameter 2))))
|
|
|
|
(defun fair-share-p (pizzas friends)
|
|
(multiple-value-bind (quotient remainder) (floor (* 8 pizzas) friends) (zerop remainder)))
|