博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lisp 习题 钱币换算问题
阅读量:2498 次
发布时间:2019-05-11

本文共 1117 字,大约阅读时间需要 3 分钟。

定义一个函数,接受一个整数 cents 并返回四个值,将数字用 25- , 10- , 5- , 1- 来显示,使用最少数量的硬币。(译注: 25- 是 25 美分,以此类推)
CL-USER> (defun cents (n)
       (if (not (integerp n))
           nil
           (let ((x25 0)(x10 0)(x5 0 )(x1 0)(lst nil))
         (setf lst (multiple-value-list (floor  n 25)))
         (if (= 0 (second  lst))
             (cons 'x25 (car lst))
             (progn
              (setf x25 (cons 'x25 (car lst)))
              (setf lst (multiple-value-list (floor (second lst) 10)))
              (if (= 0 (second  lst))
              (list x25 (cons 'x10 (car lst)))
              (progn
                (setf x10 (cons 'x10 (car lst)))
                (setf lst (multiple-value-list (floor (second lst) 5)))
                (list x25 x10 (cons 'x5 (first  lst)) (cons 'x1 (second  lst))))))))))
CENTS
CL-USER> (cents 5)
((X25 . 0) (X10 . 0) (X5 . 1) (X1 . 0))
CL-USER> (cents 6)
((X25 . 0) (X10 . 0) (X5 . 1) (X1 . 1))
CL-USER> (cents 11)
((X25 . 0) (X10 . 1) (X5 . 0) (X1 . 1))
CL-USER> (cents 15)
((X25 . 0) (X10 . 1) (X5 . 1) (X1 . 0))
CL-USER> (cents 5)
((X25 . 0) (X10 . 0) (X5 . 1) (X1 . 0))
CL-USER> (cents 25)
(X25 . 1)
CL-USER> (cents 10)
((X25 . 0) (X10 . 1))
CL-USER>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-741715/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/133735/viewspace-741715/

你可能感兴趣的文章
bzoj2194: 快速傅立叶之二
查看>>
2018-2019-2 20189206 《密码与安全新技术专题》 第四次作业
查看>>
CentOS7如何设置静态IP及开放DNS端口
查看>>
精密V / I 转换电路
查看>>
求组合数取模的几种方法
查看>>
个人所得税计算器
查看>>
vs2015 不能启动 iis express
查看>>
electron 写入注册表 实现开机自启动
查看>>
记一次Debug过程
查看>>
画圆算法
查看>>
记录一次redis故障
查看>>
最近公共祖先(lca) hdu 2586
查看>>
安卓开发笔记——关于AsyncTask的使用
查看>>
spout详解
查看>>
一个md5加密的工具类,用的虚拟机的包,不需要额外导包
查看>>
centos7在VMware下配置网络连接
查看>>
希尔排序 堆排序 归并排序
查看>>
ckplayer插件播放视频
查看>>
寻找最好的笔记软件:三强篇(EverNote、Mybase、Surfulater) (v1.0)
查看>>
时间长了不用,什么都忘了
查看>>