【发布时间】:2017-05-04 21:31:55
【问题描述】:
我很想创建一个函数,将两个给定数字相除,然后将它们的商和余数放在一个列表中。除了在某些情况下,我已经让它工作了。这是我的代码:
(define (div dividend divisor)
(cond ((= 0 divisor) #f)
((< dividend divisor) (cons (quotient divisor dividend) (cons dividend '())))
(else
(div (- dividend divisor) divisor))))
这适用于大多数情况。
(div 13 4) returns '(4 1)
(div 3 7) returns '(2 3)
(div 5 0) returns #f ;(returns false to avoid divide by zero situations)
所有这些都可以完美运行,但是诸如:
(div 16 4)
(div 4 2)
(div 15 5)
全部返回以下错误:quotient: undefined for 0 这主要集中在代码上:
(((商除数)(cons被除数'())))
还有其他方法可以构建我需要的列表吗?我需要该列表包含被除数进入除数的次数以及余数。
【问题讨论】: